Add frame rate limit

- Add a frame rate limit of 60 frames per second to the event loop.
- Add a stopwatch class template to keep track of time measurements
  and to handle std::chrono conversions.
- Add an sdl::ticks typedef of type std::chrono::duration to
  simplify conversions between std::chrono types and the type used
  by SDL to represent ticks (std::uint32_t).
Add documentation

Add documentation for the stopwatch class template.
Modify stopwatch

- Change stopwatch methods from start/stop to reset/elapsed.
- Extract sdl::ticks out of stopwatch.hpp and into its own file.
- Add a second stopwatch to the event loop for handling updates.
Add ball movement

- Update ball to hold its position as floats rather than in an SDL_Rect.
- Add temporary velocity constants to the ball class.
- Add update methods to the game and ball classes, which update the
  ball's position based on its velocity and the elapsed time.
Minor changes

- Make game::draw() and ball::draw() const.
- Fix stopwatch::reset() to only call clock::now() once.
Reorder stopwatch methods

Put stopwatch methods in alphabetical order.
Add ball physics

- Add a rectangle class and ball::collision_rectangle() to get the
  ball's collision rectangle.
- Add a boundary class to define the area the ball must stay in (and the
  edges on which the ball will collide).
- Update the ball to have velocity member variables (which change when
  the ball collides with the area outside the boundary).

Closes #2.
Merge branch 'feature/ball-physics' into develop