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).