State updater improvements

This should implement the changes we discussed in #210 (and partly in #112). Only `f(t)` where `f` is a locally constant function (which applies only to `TimedArray`s with the correct `dt` for now) is considered to be locally constant and therefore ok to use with linear integration. 

There's one slight annoyance in the current code which we should deal with later: until now, we always determined the state updater at object creation time to catch syntax errors. This does not work anymore since the namespace (and with it the functions) are only determined at the time of `before_run`. I don't know of a straightforward and simple solution right now but I think we should deal with it when we do a more general review of our error handling.

Apart from some documentation, this is finished from my side.

Closes #210.