VIDEO: Make getFrameAtTime() public
VIDEO: Don't allow videos to access externally-added tracks
VIDEO: Use the main isSeekable() in seekToFrame()
VIDEO: Improve accuracy of getFrameTime() and getFrameAtTime()
VIDEO: Add support for seeking in AVI videos with an index

Rewinding will work in any AVI video
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