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.