Store dependencies for objects that depend on other objects (monitors, synapses). Not including them in an explicitly constructed `Network` raises an error, not including them in a `MagicNetwork` (e.g. because a reference to a monitor is keeping that object alive) will raise a warning and set the object to inactive. Closes #92
Use a `WeakKeyDictionary` for `Runtime.arrays` so that the memory gets freed for arrays that are no longer used.
Make travis use the run_nose_tests script (so that numpy's KnownFailure extension is used)
Add two more simple tests
Remove the option to only store weak references in the network, this is now handled differently for `MagicNetwork`.
Collect garbage before `magic_network.run`
Refactor the indexing system so that basic indexing is still possible even when the `Group` no longer exists.
Move `set_...` and `get_...` methods from `Group` to `VariableView` so that the indexing can work without the group.