Do not block UI thread endlessly for small diffs
Do not block UI thread endlessly for small diffs

For background refreshs it is very often the case that the top commits
change often, consider the human date format still showing seconds or
minutes for a specific commit. Since we currently only consider
`did_navigate` if the drawn regions are below the cursor, we can easily
never set `did_navigate` if we're just a few commits below the HEAD.

In that case, we don't get enough diff tokens (probably none) to keep
the draw process alive, and thus would block until `TheEnd`. To avoid
that, we set a timeout of 50ms.

A few things to keep in mind:

1. The `reader` or "git" is generally faster than Sublime.
2. On initial draws or if a lot changed, we really get a continuous
stream of diff tokens here.
3. We generally want some blocking behavior because it is faster and to
reduce redraws, e.g. visual flicker.

divmain/GitSavvy,divmain/GitSavvy,divmain/GitSavvy