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 
You should initialize `maxX`, `maxY`, `minX`, and `minY` here since they are scenario/grid specific. Even if the defaults match, they should be set here.