Refactor the VectorEntity casting

Change Order functions to return the result
Remove unused initialize code

Re-enabling the behavior automatically would create the problem where if the behavior is disabled by another behavior/module then it could be automatically re-enabled again. Since by default teleport interrupting is enabled, most cases would require the behavior to stay enabled. If someone disables the teleport interrupting then he might as well check UnitUtils.MayHaveToInterrupt.

====

Extract ability ordering function in Execute

====

Add comments to several locations
Change IsMagicImmune to include more buffs
Add damage immune functions

These functions will return whether the unit can not be harmed by the type of damage they represent. Take Rhapsody's Protective Melody (ult) as an example.

====

Add IsPhysicalImmune

This function returns whether the target is immune to physical damage, like a Void Talisman. During this time physical spells can not be cast on the target (unlike IsPhysicalDamageImmune where they can still be cast but don't do any damage).

====

Change HasNullStoneEffect to include DM's ult
Add ShouldRemoveNullStone

This property specifies if the ability should be used to remove a target's Null Stone effect. Abilities like Armadon's Snot or Deadwood's Uproot are perfect candidates for this due to their short cooldowns and low impact (especially late game by the time one would be able to get a Null Stone).
Update Template to include the new ShouldRemoveNullStone property
Add CastEffectType to AbilityInfo

This property is used to specify the spell effect type of the ability. It should be the same as the "casteffecttype" value found in an "ability.entity" file. If multiple casteffecttypes are found in this file then they should be converted to a table.
Add Threat property default to AbilityInfo
Update Template file

Added the CastEffectType property to the property list. Also improved the general structure a fair bit and entered some example values in the TargetType properties. This should make creating a new hero data file easier.