New SpellInfo parameters "buffnocost" and "buffhalfcost".

"buffnocost" specifies the player aura present that makes casting the
spell resource-free.

"buffhalfcost" specifies the player aura present that makes casting the
spell cost half the normal amount of resources.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1290 d5049fe3-3747-40f7-a4b5-f36d6801af5f
De-couple OvaleBestAction from OvaleState.

OvaleBestAction takes two bits of information (node tree & state machine)
to compute the best action.  The state machine isn't intrinsic to the
computation and is now a direct parameter of the relevant methods.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1291 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Use the correct spell cost when determining usability of a spell.

The cost defined in SpellInfo may be adjusted downward based on other
parameters, and we should use the adjusted value, not the raw value, when
checking whether the spell is able to be cast or not.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1292 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Extend ItemCooldown() condition to take slot name instead of item ID.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1293 d5049fe3-3747-40f7-a4b5-f36d6801af5f