Refactored Bullet class from ground up

The player can shoot again. Added Tests.