Mouse look and Refactoring

- Added mouse look, so gun can be fired at an angle.
- Refactored the bullet and gun classes to abstract, so that I don't
have to reimplement common functionality everytime.
- Also added in hooks for a "Rocket Launcher" class to be implemented at
a later time.
- This would be a gun that fire slower, travels slower, exploder more,
and does more damage. Also there would be an extra particle effect at
the end of the rabbit (methane emisions?)