New: Add a publish/subscribe system for notifications
New: Change Toolbar to publish/subscribe

Previously the calls to update the toolbar were hard-wired, making it difficult to disable the toolbar without things breaking.

This commit moves the toolbar updating to a notification pattern, where a notification to update something can be sent. If the toolbar is disabled, the notification does nothing.
Update copyright notice
Update to use simpler while loops
Rename toggle methods

Does more than just toggle the icon. Renamed to reflect this.
Rename notifications to be clearer
Rename public methods to standardize naming
Disambiguate private/public methods
Micro-optimize a few loops
Rename methods to reflect that they return a boolean
New: Added public method for getting the min and max zoom levels
New: Public method for getting the internal selector

Useful for constructing selectors for pages.
Deprecated this.getCurrentPage

Added getCurrentPageIndex and getCurrentPageFilename
Remove unused import
Removed wildcard import from fabfile
Updated comparison operator
Re-formatted to use allman-style bracketing

It's what we're using for all other JS projects, so might as well convert this one too
Optimize isTileLoaded to remove jQuery lookup
Slight optimizations to the core tile loading loop

Move a few operations outside of the loop
New: Added callback that is called after a page has finished loading.