Analysing and bounding numerical error in spiking neural network simulations