Druid: Don't cast bear Berserk with Incarnation is active.

The name of the buff referenced in the script was incorrectly
"son_of_ursoc" instead of "son_of_ursoc_buff".  Fix by @Wiljo.
Warrior: Fix rage cost of Impending Victory after landing a killing blow.
Rogue: Fix spell information to add to the correct spell IDs.

The spell information for the Crimson Tempest DoT wasn't correctly being
added due to the wrong name reference being used.
Add "_buff" and "_debuff" to the default raid buff names for consistency.
Add "stealthed_buff" spell list for common rogue and druid stealth buffs.
Add "amplified" buff from the Amplification trinkets.
Add ExecuteTime() script condition to match SimC's "execute_time".

This condition returns the larger of a spell's cast time or the GCD.
Fix operator precedence bug with "and" and "or".

"And" binds more tightly than "or" in most logical operator precedence
systems.
Teach OvaleAST unparser to automatically insert parentheses as needed.

The AST structure implies that parentheses are needed when unparsing
expressions, based on the relative precedence of the operators involved.
Any existing parentheses that are extraneous due to precedence are
ignored when unparsing.
When unparsing Ovale ASTs into scripts, avoid unnecessary whitespace.
Add PrimaryResource() script condition for the current power level.

PrimaryResource(id) returns the current amount of the player's primary
resource for the given spell.
Rename TicksRemain() to TicksRemaining() for better readability.
Put all script condition definitions into a single file.

This reverses a design decision to split up conditions into smaller files
that ended up making this addon harder to update for users.  Keeping all
conditions in a single file reduces the likelihood of files being added or
removed, which allows for updating the addon without needing a full
restart of the WoW client.

This does make the conditions.lua file harder to maintain, but a clean
internal code layout should alleviate this concern.
Rename *Remains() script conditions to *Remaining() for readability.

The old names are still usable as aliases of the recommended condition
names.
Fix debuff spell list names used in GetAura.
Allow setting and getting variables within the simulator from the script.

This feature can be used to keep state from the script.

    SetState(name, value) sets the named variable to the given value.
    GetState(name) gets the value of the named variable or 0 if missing.

Internally, a new action "SetState" was added that always returns true.
This new state action has no output.

OvaleFrame has been adjusted to avoid flickering if a state action is the
best action.
Add haste buff from legendary caster meta-gem.
Add additional spells used in SimulationCraft action lists.
Allow specifying a cooldown time for buffs.

This cooldown time is how long to expect between when the buff is gained
and can be used to note the internal cooldown of a trinket that applies a
buff.

Decorate trinket buffs with approximate internal cooldown times.  The
syntax is "buff_cd=N" where N is the number of seconds.

Add a BuffCooldown(id) script condition to return the remaining time
before the buff can be gained again.
Death Knight: Fix Dark Transformation usage.

Dark Transformation requires 5 stacks of Shadow Infusion on the player and
applies a buff to the pet.

This fixes ticket 379 by @bamabandit.