Switch SpikeMonitor implementation to code generation
Start implementing StateMonitor with code generation (not working yet)
Python codegeneration working for StateMonitor
C++ codegeneration working for StateMonitor
Merge remote-tracking branch 'origin/master' into monitors_codegen

Conflicts:
	brian2/codegen/languages/base.py
	brian2/codegen/runtime/numpy_rt/templates/monitor.py_
	brian2/codegen/runtime/weave_rt/templates/monitor.cpp
	brian2/monitors/statemonitor.py
Fix recording several state variables with C++ code
Use numpy_resize for DynamicArrays
Make StateMonitor work again for subexpressions
Switch off refchecks for synaptic indices -- this way we can use the faster resize. No code should ever store a reference to the underlying data attribute.
Use numpy's concatenate instead of hstack, it's apparently faster
Fix bugs and add tests for StateMonitor, no longer derive from Groups (this doesn't play nicely with subexpressions)
Fix an incorrect import that sneaked in
Make the __getattr__ mechanism in StateMonitor Python3-compatible (we should document/implement a standard mechanism for this, we are using it in several places)
More tests for the monitors
Add a simple PopulationRateMonitor (no binning, no smoothing)
Don't comment out tests in the main block of test_monitor
Started documenting codegen
Remove the SynapticArrayVariable specifier
Prepare synapse creation for subgroups
Start a big overhaul of the indexing system