Let all dynamic examples run at 60 fps

This does a few things:

* Remove call to `canvas.update()` from `on_draw` in all examples. Use a timer instead.
* Gives `canvas.update()` an optional event arg (which is not used) so it can be used as an event handler, simplifying code that wants to call `update` via a timer.
* Improve measure_fps.

Todo:

* [x] If everyone agrees with the update of the `canvas.update()` method, use it in places where we now use awkward lambda. Otherwise change where I used it already.
* [x] Update use of timer to move `connect` and `start` in the initialize call.

Closes #229
Good thinking. This can indeed fail when we keep the canvas hidden at first.

This goes well with all examples though (and should be consistent), because they show the canvas right after creating it, which ensures that the first draw event (i.e. initialize) is called before the first tick of the timer.