Numerous updates and simplifications, mostly internal

- Directions are now based on Locations, for easier math
- Various simplifications in the Location class
- Significantly simplified bounds checking code on BaseGrid
- Removed BaseGrid.set and BaseGrid.get
- Added BaseGrid.locations and BaseGrid.cells
- DenseGrid can now be initialized with an iterable
Version bump