Demolish as Enter subclass

Makes Demolish a subclass of Enter.
You'll need to do an `IsDead()` or `Destroyed` check here (that was previously built into this type check):

```
Exception of type `System.InvalidOperationException`: Attempted to get trait from destroyed object (fact 65 (not in world))
  at OpenRA.TraitDictionary.CheckDestroyed (OpenRA.Actor actor) [0x00026] in /Users/paul/src/OpenRA/OpenRA.Game//TraitDictionary.cs:84 
  at OpenRA.TraitDictionary.WithInterface[IDamageModifier] (OpenRA.Actor actor) [0x00002] in /Users/paul/src/OpenRA/OpenRA.Game//TraitDictionary.cs:106 
  at OpenRA.Actor.TraitsImplementing[IDamageModifier] () [0x0000d] in /Users/paul/src/OpenRA/OpenRA.Game//Actor.cs:188 
  at OpenRA.Mods.RA.Activities.Demolish+<OnInside>c__AnonStorey2+<OnInside>c__AnonStorey1.<>m__1 () [0x00011] in /Users/paul/src/OpenRA/OpenRA.Mods.RA//Activities/Demolish.cs:55 
  at OpenRA.Effects.DelayedAction.<Tick>m__0 (OpenRA.World w) [0x0000e] in /Users/paul/src/OpenRA/OpenRA.Game//Effects/DelayedAction.cs:31 
  at OpenRA.World.Tick () [0x0016f] in /Users/paul/src/OpenRA/OpenRA.Game//World.cs:278 
  at OpenRA.Game.InnerLogicTick (OpenRA.Network.OrderManager orderManager) [0x001c5] in /Users/paul/src/OpenRA/OpenRA.Game//Game.cs:452 
  at OpenRA.Game.LogicTick () [0x0004e] in /Users/paul/src/OpenRA/OpenRA.Game//Game.cs:476 
  at OpenRA.Game.Loop () [0x000ca] in /Users/paul/src/OpenRA/OpenRA.Game//Game.cs:589 
  at OpenRA.Game.Run () [0x00042] in /Users/paul/src/OpenRA/OpenRA.Game//Game.cs:628 
  at OpenRA.Program.Run (System.String[] args) [0x00011] in /Users/paul/src/OpenRA/OpenRA.Game//Support/Program.cs:116 
  at OpenRA.Program.Main (System.String[] args) [0x00050] in /Users/paul/src/OpenRA/OpenRA.Game//Support/Program.cs:39 
```