Quad tree for collision detection

* Quad tree for efficient collision detection
* Shape class for extendable collision detection
Does the (for example) `Coquette.Collider.Shape.Rectangle` need to be instantiated? Can it not be preinstantiated inside Coquette and then just assigned inside an entity as before eg:

```javascript```

Collider.prototype = {
  //...
  RECTANGLE: new this.Shape.Rectangle(),
  CIRCLE: new this.Shape.Circle()
}

var Ball = function() {
  this.boundingBox = Coquette.Collider.RECTANGLE;
};
```

To support this, `this` inside the `isIntersecting()` functions would need to be used.