Quad tree for collision detection

* Quad tree for efficient collision detection
* Shape class for extendable collision detection
Does _useQuadTree need to exist? (See two comments down.)