Progress reporting

This does not deal with everything discussed in #43 (no separation into sub tasks) but at least it brings the progress reporting in Brian2 to the level of Brian1. It also adds progress reporting for the standalone mode which is quite nice for long-running simulation. `Network.run` (or magic's `run`) accepts three different arguments for `report`:
* `'stdout'` (or alternatively `'text'`): print the progress to standard output
* `'stderr'`: print the progress to standard error
* a custom report function. For runtime, this should be a callable accepting three arguments (elapsed real time, fraction completed and total duration in biological time). For standalone, it accepts code that will be filled into the report function, i.e. a minimal argument could be something like `report='std::cout << completed << std::endl;'`

Apart from tests and user documentation -- anything else needed for this before merging?