BulletPool now uses a Deque backend

Bullets will be returned to the bottom, so the pool should now cycle through ALL bullets
Synchronized BulletPool
ShipStats equals and hashcode

I don't think we ever use it