Improvements to update and paint fluency.

1. We properly calculate alpha as the fraction of time past the "ideal" time at
which the last update took place.

2. We account for update() calls that take non-trivial amounts of time (which
causes alpha to be even larger that we would have otherwise computed).

3. We use System.nanoTime() which is less wacky than
System.currentTimeMillis().