Back out part of r1196 and defer saving the player's GUID.

The player's GUID is actually not available at load-time and must wait
until more of the game is initialized before the information can be
queried.  Get the information during PLAYER_LOGIN time instead by adding
it to the OnEnable() methods.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1198 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Rename UpdateFromSpellcast() to UpdateSnapshotFromSpellcast() for clarity.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1199 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Move initialization of OvaleData.spellInfo into OvaleCompile.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1200 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Move GetTickLength() back to OvaleData after module de-coupling changes.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1201 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Check that an aura is active by checking its stacks and start/end times.

This is a prelude to allowing expired auras to be returned by aura
functions.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1202 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Use simpler Lua idiom to express mix-in methods.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1203 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Decorate code to identify state mix-in methods and enforce proper usage.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1204 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Simplify casting spells in the simulator.

- Push more state into the simulator. This is a step towards allowing
  multiple simulators managed by Ovale.

- Remove OvaleState.now and replace with direct calls to API_GetTime().
  Places that were using OvaleState.now were really needing the current
  time, and the client already caches the current time for API_GetTime()
  for the duration of a frame.

- Re-arrange parameters to ApplySpell*() methods to simplify casting
  spells in the simulator.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1205 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Fix ticket 208 - wrong key binding being displayed.

Manage an additional mapping from slot number to action, and clear the
mappings for a slot if an action is removed from that slot.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1206 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Only reach Eclipse state if the spellcast got us there.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1207 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Fix arguments passed to state:GetCD().

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1208 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Add Get/ReleaseReference methods to all pool classes.

This allows for using them interchangeably from an API standpoint.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1209 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Hide snapshot reference-counting behind an API.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1210 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Add state mix-in methods for DoT tick and duration information.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1211 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Modify some state mix-in methods to take an optional snapshot parameter.

This allows for computing haste multipliers relative to the correct
snapshot at the time the spell was cast.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1212 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Complete re-write of OvaleAura.

- Simplify aura database layout.
- Allow for returning expired auras to expose more information.
- Make state of auras tracked in simulator more rigorously correct.
- Move state:GetDamageMultiplier() to OvaleFuture where it's needed.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1213 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Drain table pools when leaving combat.

Also do more extensive clean-up when the addon is disabled.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1214 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Add CleanState methods to classes implementing state for the simulator.

These methods are invoked when unregistering a class from a simulator.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1215 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Periodically garbage-collect auras in the state machine.

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