Open left and right sides of boundary

Update the boundary so that the ball no longer bounces off the left or
right sides of it.
Add boundary::outside methods

Add methods to check if a rectangle is outside the boundary.
Add ball::push method

Add method to ball which pushes it out of a collision and updates its
velocity.
Add vector2d::polar method

- Add method to construct vector2d from polar values.
- Set ball velocity using polar values.
Add scoring detection

Detect when the ball has left the boundary and replace it in the
boundary, moving right.
Add scores

- Add scores to the game class.
- Increment the score when the ball leaves the boundary.
Construct balls with random velocity

Update ball constructor to use a velocity with a constant magnitude and
a randomly-generated angle.

Closes #7.
Merge branch 'feature/scoring-zones' into develop