Started to implement delays again, identifying which variables need spike delay queues, both for proper spikes and spike events.
Code for spike events just need to be generated for neuron groups that actually need them.
Made changes to the variable allocation for sparse arrays and adjusted Izh_sparse_project accordingly.
Introduced a __device__ __host__ exp(int) function to avoid problems for (apparent) integer arguments to the exp function. DO we need this for all common functions?
(the problem appeared in brian2genn linear integration test where mysteriously exp(-(0.001)/1) was resolved to exp<int>. Needs following up.
Fixed spkQuePtr* being called different things in different places (spkQuePtr or spkEvntQuePtr). Now everything is spkQuePtr.
Changed the dry-compile to define the correct DT (and not "1") to avoid problems with non-defined integer versions of math functions (related to brian2genn issue #17).
Merge branch 'development' of https://github.com/genn-team/genn into development
initialize() function does not call initializeSparseArrays() at the end anymore. This function should be called by the user.
Merge branch 'development' of https://github.com/genn-team/genn into development
Changed ambiguous naming of arrays in sparse array creation. There are no more rev- or post- variables anymore, everything is named as ind or indInG as it should be. This also fixes the Izh_sparse project.
MBody_userdef seems to be working with learning usig sparse array. Further tests are still needed to be sure. I had to modify sparseUtils.cc to make this happen, sorry for any inconvenience for any other users.
Fixed some bugs regarding the initialisation and readout of shLg in the small neuron group case sparse connectiveity synapse kernel.
Merge branch 'development' of https://github.com/genn-team/genn into development

Conflicts:
	lib/src/generateRunner.cc
Minor bug fixes in generateKernels and rescaling of things so that MBody1 runs approximately ok. There is still a problem in MBody_userdef in that gRaw values are initialized to a standard initialisation value rather than being the inverse "g-function" of g_0 values read from file. This needs fixing. We should also review the way Esin sets up the "sparse" connectivity for KCDN connections.
Tidied up the MBody_userdef project. Now this project can be used with an additional argument which decides if conductances and input patterns will be created or not. If it is not 0, the model uses existing files.
Testing the model with the same connectivity as MBody1 gives the same spiking information with a different order as MBody1, and it is 10% slower. I assume that this resolves #32.
Changed the default spike detection threshold for HH neurons to 0 mV (which is more typical than +20 mV). Fixed a small bug in the plotRaster script.
Error checking for MBody1 and MBody_userdef examples to avoid 0/0. Values smaller than float epsilon are discarded in sparse connectivity, and set to float epsilon in dense.
Adding a test script which runs GPU and CPU versions of MBody1, MBody_userdef, Izh_sparse examples. We should add other projects too once they are tested.
Modified generate_run.cc in all user projects for better error checking: if a system returns an error, we exit the program after showing the line that failed. This also cleans up a lot of warnings.
Fixed the bug that comes with the Traub and Miles model where alpha_m, beta_m and alpha_n can lead to division by 0 problems. The condition when this happens is now explicitly tested and an alternative solution given in those instances.
Performance testing given this change pending.
Modified testscript.sh to add a custom info message into .time file, passed as an argument to the script.