Fix redraw infinite delay

This fixes #252 to prevent spamming of `m.redraw` on browsers not supporting `requestAnimationFrame` from inifinitely delaying the actual redrawing.
It does so by chaining up to one redraw to the current delayed function, using a boolean (`redrawAgain`).

In order to do this, the mock `requestAnimationFrame` was rewritten to allow its callback to register another callback for the next frame.
This rewrite was done in a separate commit, d14306a, to ensure no tests were broken.

Lastly, a teardown was added to the test on line L1457 of mithril-tests.js to clear the callbacks from the `requestAnimationFrame` mock.