Implement an action queue and allow potion use at any time

Fixes #1049

This commit primarily fixes two things:
- Instant powers that consume an item (aka potions) can now be used when
attacking, being hit, or blocking without interrupting that action.
- Previously, power activation depended on its position in the action
bar. For example, if the player pressed 6 first and then pressed 1, the
power attached to slot 6 would be activated. However, if the player
pressed 6 first and then pressed 9, the power on slot 9 would be
activated. This commit fixes that so that the power in slot 6 would be
activated in both cases (since it was pressed first).
Merge pull request #1188 from dorkster/fixes

NULL-ify shared game resources on gameplay exit
Merge pull request #1173 from dorkster/action_queue

Implement an action queue and allow potion use at any time
Allow quantites to be sepcified for requires_(equipped)_item in powers

Formatting looks like this:
```
requires_item=10,25

requires_equipped_item=112,1
```

- requires_item will consume 1 item by default
- requires_equipped_item won't consume any item by default, but will
consume a maximum of 1 item if specified

Items no longer need to be of the "consumable" type to trigger a power
that consumes them. This let's us have a power-tree power that can
consume gold.
Allow buff powers to drop loot

Syntax in power definitions is the same as events and enemy definitions.