Code reorg. Collision detection

- Organized code into proper classes, so not everything is in one class
- Added generic N-Vertext collision detection (not 100% sure if this
works)
- Added AABB collision detection, for paddles and walls

TODO:

- Need to handle curved surfaces, so the ball can be collided with
- Need to add collision detection for the score zone
- Simplify what happens after the paddle has collided with a wall.