Added object pools, added shield animation

Added object pools to re-use common objects
- Prevents unnecessary garbage collection
- Instantiation and Destroy are expensive

Reworked bullets to make use of the new object pool
- Separated bullet logic out from the Player class

Shield
- Added flashing animation
- Soon will make flashing function to available to all sprites
- Separated Shield logic from Player class