Drop remains of code to show "Loading..." message

It calls a method that no longer exists, but only when an impossible
condition is true.
Garbage-collect strings
Fix timer leak after multiple Viewer.open() calls

Keep a counter of Viewer.close() calls in private state and a copy in
the timer's closure, and stop the timer when they no longer match.

Fixes #76.
Revert "Fix timer leak after multiple Viewer.open() calls"

This should be done with cancelAnimationFrame() instead.

This reverts commit 47aba609403d090b04b144b1e0097e0ea969f7a8.
Fix timer leak after multiple Viewer.open() calls, take 2

Track the request ID of the outstanding animation frame and cancel it
on Viewer.close().

Fixes #76.
Re-add viewer.source check in updateMulti()

It should be redundant in normal operation, but may prevent a timer leak
in case of a bug in the open/close path.
Merge pull request #80 from bgilbert/timer-leak

Fix updateMulti timer leak after multiple Viewer.open() calls. Fixes #76