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)```.
But ```buildTile``` still needs to be called below. It will handle passing back the error state -- previously I had two different methods, then decided to combine them, but I could go either way.