Refactor collision

* Change x,y in ball to be a Vec2<f32> instead.
* Add Collidable trait again, and use it to special case the paddle.
* When the ball hits the top of the paddle, alter the bounce to allow
  the player to control the new direction of the ball based on where
  the ball contacts the paddle.