Inheritance and Debris

closes #44. closes #42 

all moving entities inherit from EntityBase.

all enemies inherit from EntityEnemyBase which inherits from EntityBase. Debris is handled by the new inheritance scheme. Any entity can declare that when they are hit, debris should be rendered. Each entity can declare a specific sprite to use when rendering the debris (see the basher code for an example of how to do this) but by default enemies will use the default debris.

I'll create a new issue to update the debris images for each enemy if it's needed.