Refactored all of the collision checking into separate functions so that the main loop
reads better. However, I would still like to figure out a better way of encapsulating the interactions
between objects.
Merge remote-tracking branch 'team/master'