Added Math Utilities for CombatCommands
Added datatables for CombatCommands
Added hate to AI (distinct from damage).

Hate is not the same as damage.

AI is meant to choose their target based on who's most hated, not who's
dealt the most damage.

Hate is affected by the hate fields in combat commands, not necessarily
the damage of those commands.

An example is the Guardian Strike ability which deals zero damage but
increases hate greatly.

There is still a purpose for HighestDamageDealer in locations such as
DeathState where the person who gets the loot is the highest damage
dealer.  Damage dealt is also used in XP calculation.
Removed unnecessary command registrations
Changed AI abilities to add to abilities list.

This allows the command system to recognise that they have the ability
in their abilities list.

Also removed setPvpBitmask which is redundant and unused; has no effect
on anything.
Removed more unnecessary command registrations
Changed DOIds to be safer, added reusableIds

DOIds are still 100% needed for instances.

ReusableIds will be ideal for staticService and many other locations
where you know the object is only temporary to that session.
Moved cooldowns to TangibleObject
Reverted NGECore.java temporarily
Merge remote-tracking branch 'origin/CombatCommandRefactor' into CombatCommandRefactor2

Conflicts:
	src/services/ai/AIActor.java