Add a PageVisibility helper that wraps the HTML5 Page Visibility API.

See #26.
Add a configurable OperationScheduler and refactor RefreshGame to make use of it.

See #26.