Loaded building data should not clear when map is refreshed #91

The `gridUpdated` trigger now passes two arguments:
- `tiles`: all tiles that are currently visible
- `newTiles`: only tiles that are now visible but weren't before

By using the `newTiles` argument instead of `tiles` in the `requestTiles` action, the input module will no longer load tiles that are already loaded.

`BlueprintOutputBuildingTiles` now stores its meshes in a hash rather than an array so it can quickly determine which ones it needs to replace.