Start implementing a simplified namespace handling
Continue simplifying the namespace handling, `resolve` and `resolve_all` are now methods of `Group`.
Make `Group.resolve` resolve both internal and external variables. Test suite passes now.
More cleanup, remove explicit use of get_local_namespace, not caring about the explicitly set namespace
Use functools.partial instead of a lambda function to keep the object pickable.
Move the `runner` method from `NeuronGroup` into `Group` (it could also be used for other groups, e.g. for running arbitrary code in the context of `Synapses`)
Rename `GroupCodeRunner` to `CodeRunner`
cleanup: remove some unused imports
Merge remote-tracking branch 'origin/master' into namespace_cleanup

Conflicts:
	brian2/core/network.py
	brian2/devices/cpp_standalone/device.py
Consistently pass run_namespace as an argument wherever level is used
Implement the final hierarchy of namespace resolution and adapt the documentation accordingly. Closes #198
Merge pull request #204 from brian-team/namespace_cleanup

Namespace cleanup
Make `use_units` argument in `Group.state` optional.
Fix a bug in subexpression handling
Add support for symbolic constants that are recognised by sympy. Closes #197
Add simple tests for the symbolic constants.
Move the variable setting/getting into `Group` and use the `device_override` mechanism for standalone. Closes #202
Make `PopulationRateMonitor` into a `Group` (not working in standalone yet).
Make `SpikeMonitor` into a `Group` (not working in standalone yet).
Merge pull request #206 from brian-team/symbolic_constants

Symbolic constants