Improved requestAnimationFrame polyfill

Processes all outstanding frame requests per frame, rather than one at
a time.
Fixed another potential timer leak when closing a viewer

If the viewer was closed in response to an event raised during the
update function, the timer would have continued running.
Now closing the navigator when the viewer closes

At the very least this was causing the navigator to continue to request
and process frames even after its viewer had been closed.
Navigator now updates properly when reopening a viewer

Before, if you closed a viewer and then opened a new tilesource into
it, the navigator would still have the old tilesource. This patch fixes
that.
Exposing _updateRequestId as a semi-private member for testing purposes
Basic test no longer uses navigator since we have a suite for that
Testing source and timer management in basic test
Testing closing one image and opening another in navigator suite
Cleaned out dead code in scheduleUpdate and updateMulti

… as pointed out by @ventero
Addressing code review comments
Removed the parens around new Date call, for consistency
Merge branch 'master' into raf
Added changelog for #133
Added OpenSeadragon.now()
Moved to better location
Merge branch 'master' into raf

Fixed Conflicts:
	src/viewer.js
Merge branch 'master' into now
Grunt: generate source maps when compressing
Strip build prefix from sourceMappingURL (see #51)

Previously the sourceMappingURL would be prefixed with
"build/openseadragon/"
Grunt: normalize build paths

The sourcemaps included build/openseadragon/ in the paths. Since grunt
lacks a standard way to replace text in files, I semi-randomly picked
grunt-text-replace.