Initial scaffolding for the Synapses class (no synapse creation, no
execution of pre/post codes, etc. yet)
First steps to port SpikeQueue (ignoring CSpikeQueue, weave and dynamic
delays for the moment)
Implement synapse functionality -- creating synapses is not implemented
(only a manual one-to-one connectivity via the connect_one_to_one
method), neither is setting delays or state variables (you can directly
go via S._delays and S._arrays, however)
Add an example showing the Synapses class at work
Move synapses into its own packages
Introduce a DynamicArrayVariable specifier and thereby simplify the
handling of dynamic arrays (no more need to replace them by standard
arrays)
Refactor Synapses code: The pre/post code objects now contain SpikeQueue
and delays, SpikeQueue is no longer a BrianObject
Adapt SpikeQueue docstrings to the new system.
Merge branch 'master' into synapses

Conflicts:
	brian2/groups/group.py
	brian2/groups/neurongroup.py
Allow adding multiple pathways using `add_pre` and `add_post`.
Return the name of the created pre/post object (useful if an automatic name is generated).
Fix bug in codeobject creation
Add a test and a simple performance benchmark for spikeque
Refactor SpikeQueue, put indices into their own class and implement
access to synaptic state variables.
Implement the new syntax for multiple pathways.
Fix unit checking for synaptic variables and treat delay as a synaptic variable.
Allow S.delay as a shortcut to S.pre.delay
Adapt test to refactored SpikeQueue
First implementation of three-dimensional indexing
Add convenience methods to add connections to a Synapses object