Changed the controller to use a keyUp/keyDown way of handleing user input.  This is much better for manipulating biped velocities.  Also gave players and objects hit boxes.

The Position object is now changed using velocities, and by calling the applyTickMovement() method.  By using velocities and ticks to control player movement, we can do things like have explosions add to a player's velocity, or be able to have an acceleration and a velocity and have them all be computed easily.  We can also be sure that every animation is running at an equal speed, and have that speed be equal even on different systems.

Player position can be directly set using the teleport(Point) function.  I decided against calling it setLocation because that has a connotation of being used to do normal movements.  Normal movements should be done through the velocity and acceleration functions.