Rename _neuron_idx to _element_idx and _num_neurons to _num_elements -- elements (previously called neurons) correspond to neurons for NeuronGroup but to synapses for Synapses and to compartments for the upcoming SpatialNeuron class.
Source/target for synapses needs only to be a SpikeGroup if a pre resp. post pathway is used.
Start simplifying the specifier system by merging classes and not requiring a duplicate definition of dtypes
Remove the SynapticArrayVariable specifier
Prepare synapse creation for subgroups
Start a big overhaul of the indexing system
Merge remote-tracking branch 'origin/master' into specifiers_rewrite

Conflicts:
	brian2/monitors/statemonitor.py
	brian2/synapses/synapses.py
Adapt monitors for the new specifiers system
Do not store names in the Specifier objects (reduces redundancy)
Do not store indices in the Specifier object, instead store a separate mapping from specifiers to indices (will be further simplified)
Remove a left-over print statement
Rename the index attribute to item_mapping to not overuse the word "index".
Implement new indexing semantic for StateMonitor, closes #88
Add tests for the new indexing semantics
Replace numpy scalar values with numpy data types with their Python equivalents (e.g. replace np.int64(1) with int(1)) -- weave otherwise treats them as general Python objects, not as numbers
Use the word "variable" instead of "specifier" everywhere
Merge pull request #90 from brian-team/monitor_return_values

Implement indexing semantics for StateMonitor
Merge remote-tracking branch 'origin/master' into specifiers_rewrite

Conflicts:
	brian2/equations/unitcheck.py
	brian2/monitors/statemonitor.py
	brian2/stateupdaters/exact.py
	docs_sphinx/developer/codegen.rst
Fix incorrect imports
Replace USE_SPECIFIERS by USES_VARIABLES