Add some debugging and logging to OvaleState to track SetState().
Mage: Fire mage script fixes.

FireDefaultActions() wasn't pared down to only "main" attacks.

There was a "^" operator that wasn't being properly translated to "xor"
that was causing the script to not suggest Combustion.
Warlock: Fix some typos and mistakes in demonology spells.
Minor cleanup of redundant check.
When looping due to setting a state variable, invalidate the result cache.

When SetState() is encountered in the script, OvaleState:GetAction() sets
the state and re-evaluates the script to find out what the next action
should be as a result of the state change.  However, it wasn't resetting
the result cache between loops, so it was re-using the previous loop's
results each time, resulting in an infinite loop.  Reset the cache by
calling OvaleBestAction:StartNewAction().
Make SpellCooldownDuration() return non-zero if the spell is not on CD.

Previously, it was returning zero if the spell was not on cooldown, but
returned the correct information only if the spell was currently on
cooldown.
Shorten keybind names for better display in the icons.

Contributed by @Lokmar in ticket 449.