Fix "dropped" frames for text updates (#224, #339) using @timthelion's insights in #350

* Change the implementation of `notify` so that it does not have a
return value any more.

* Get rid of the only remaning use of the return value of `notify` in
the `every` function.

* Have a "lock" on each round to ensure that no library or runtime
calls `notify` synchronously, causing an update to happen half way
through another update, ultimately leading to a dropped frame.