Refactored Player Class

The player class is now split into two types of players: user players
and interpolating players. User players are the players controlled by
the clients and have full functionality, interpolating players are
players that are just drawn using data received from the server. Both
classes inherit off of a base player class.