Grid system

This adds a 'grid' component which keeps track of objects on a specific scenario's grid (including inventoriables), as well as the boundary values for each space, albeit in separate arrays. So, any moving objects don't have to run through a list of inventoriables to find a collision, they only have to check the one space from the grid. 

Each scenario would have its own grid to define boundary values and where certain objects are located (the objects are currently added to the scenario's grid in `scene.js`).

Does this look like it would work well with the scenario system? @eric79 @BrettASwift 
Tiles is a zero based array, so all indices are positive. If either min x/y are negative it needs to be corrected to match that.