Protecting from double-removals from GameWorld

Using a list, checking it twice. Removing twice is bad because the
second time around it generates an erase range at using two end
iterators and that causes bad things to happen (SEGFAULT).
Testing code for shielding/deflection
Added ability to mark projectiles as inert
Simulating deflection for projectiles
Removing old code from Projectile
Added Projectile::deflect()

Causes the projectile to become inert and deflected.
Temporarily disabled debug statements from Entity
Refactored deflection code to use deflect()
Adding sound effects for damage
More audio tweaks, using stack/list system
Merge pull request #97 from zackthehuman/master

Projectile deflection and sound effects for damage, also sound system rework