Add an onInvalidate_ protected method to allow subclasses to perform cleanup on object invalidation.
Rename StarLayer to Starfield. Change StarLayer and MapLayer to implement Drawable
instead of Layer.
Eliminate ProjectileIndex and ProjectileLayer. Projectiles are now managed
by each Player and are painted as independent Drawables.
Eliminate ShipLayer and instead register Drawables with the Painter.
Remove EffectLayer and EffectIndex.
Switch NotificationLayer to implement Drawable.
Switch RadarLayer to implement Drawable.
Convert HudLayer to implement Drawable and finally eliminate the Layer interface.
Move the Layer enum out into the graphics namespace.