Add paddle collisions

Add collisions between the ball and the paddles.
Refactor collisions

- Add vector2d class to represent positions, sizes, and velocities.
- Change collision methods to return a collision vector.
- Use the collision vector to move the ball away from the collision.
- Change all floats to doubles.
- Format for code style.
Add documentation

Add remaining documentation for the ball, boundary, and vector2d
classes. Update documentation for rectangle::collision_with.

Closes #6.
Merge branch 'feature/paddle-collisions' into develop