Quad tree for collision detection

* Quad tree for efficient collision detection
* Shape class for extendable collision detection
I think this can just be `var id = 0`.  It is implicit that it is free.