NeuroCoreX: An Open-Source FPGA-Based Spiking Neural Network Emulator with On-Chip Learning