Add a callback for scene rebuilding

Adds the ability to pass a callback to ```Scene.rebuildTiles(callback)```. The callback has to wait for all tile build requests to return from the workers. If ```rebuildTiles()``` is called while a rebuild is already in progress, queue up to one further rebuild. If a rebuild request is *already* queued, notify the previously queued callback with ```callback(false)```, then queue the new callback. Whenever the rebuild process completes successfully, the callback will be called with ```callback(true)```.
Normally you don't pass a real value back on the error condition. If the first value is not null, then users expect the value arg (the second arg) to be undefined.