Continue running draw loop when paused.

Now that there is mouse interaction, it makes sense to redraw during
pause.

However, do spend some effort to avoid needless redraws.
Don't pass the aggregator to object constructors.

It's only ever referenced in the constructor, and by manually adding
subscribers in main, the objects no longer have to be instantiated in a
certain order.
Move some boilerplate into the Animation class.

Reduces code duplication.
Add TimeRemaining class.

Displays the amount of time remaining (H:MM:SS) via a pop-in from the
side on hover.