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)```.
You can just return here if you want to avoid putting the rest of the method in an else block.