Update physics and refactor game loop

Update the physics to:
* use ncollide
* treat the ball as a square
* raycast ball to enlarged square
* special case simultaneous collisions to bias towards
  the block that contains the ball's origin in one of
  its sides

Also update deps and src to latest rust