ZENGINE: Fixed signed/unsigned mismatch
ZENGINE: Bake ActionNode and MouseEvent into Control

This makes memory management a lot easier as well as removes the need for
multiple lists that point to the same objects. However, there will be quite a few Controls
that don't need all the functionality of ActionNode and MouseEvent, so the default
implementations are No Op.
ZENGINE: Create the default implementation for Control::enable()/disable()
ZENGINE: Modify TimerNode to use Control base class
ZENGINE: Change LeverControl to comply with the new Control base class
ZENGINE: Change PushToggleControl to comply with new Control base class
ZENGINE: Remove extraneous semicolon
ZENGINE: Fix signed/unsigned mismatch
ZENGINE: Update ScriptManager::enableControl()/disableControl() to fit new Control syntax
ZENGINE: Remove ScriptManager::_activeNodes and change all iterators to iterate over _activeControls

We also change _activeControls to a List instead of a HashMap because a List should have
slightly better iteration time.
ZENGINE: Add ScriptManager mouse event handlers

This allows the main engine to pass mouse events to Controls
ZENGINE: Remove ZEngine::_mousEvents and all associated functions

Instead, pass all mouse events to ScriptManager
ZENGINE: Prevent variable shadowing
ZENGINE: sscanf to ints before storing them in Rect coords
ZENGINE: Fix comment spacing
ZENGINE: Allow a angle buffer zone on *both* sides of the actual angle
ZENGINE: Round to int *after* converting to degrees
ZENGINE: Fix the quadrant numbers in angle calculations

Because y increases as you go down, not up
ZENGINE: Implement avi frame seeking
ZENGINE: Add support for animation 'mirroring'

If an animation is 'mirrored', it doesn't have B-frames, only I-frames. However the animations are built
so the last half of the animation is the reverse of the first half