feat(snapToGrid): implement a selection system that snaps to the grid lines

Add a basic selection system which drops a selection handle at grid intersections or in free space.

Closes #8
Merge pull request #26 from adamjcook/snap

feat(snapToGrid): implement a selection system that snaps to the grid lines