ZENGINE: Modify cmdLoadSound to allow manual rate and isStereo

Usually those variables are parsed from the file name
ZENGINE: Render images by specifying a destination and then clipping

Instead of specifying a subRect. This also reverts the code that rendered to a
backbuffer and then did a full backbuffer warp. Wrapping is done in the RenderTable
ZENGINE: Set the background position after the .scr file has been parsed so we know the RenderState
ZENGINE: Modify cmdLoadImage to match new render code
VIDEO: Add AVI LIST handling for ZEngine custom types
ZENGINE: Re-enable video handling now that AVI code is fixed
ZENGINE: Store the background offset from the center instead of from the top left corner
ZENGINE: Allow RenderTable indicies to be negative
ZENGINE: Allow destinations to be negative
ZENGINE: Protect against indicies that are more than an imageWidth/Height from the actual image dimensions
ZENGINE: Prevent endless looping due to incorrect file structure

Some of the .scr files don't properly close the last curly brace
ZENGINE: Change the CLIP template argument to match the type of the indicies
ZENGINE: Allow ONCE_PER_INST puzzles to be repeated once per room instead of once per game
ZENGINE: Reset push_toggle controls global state value to 0 during initialization
ZENGINE: Add newlines to console debug statements
ZENGINE: Allow MouseEvents to be unregistered
ZENGINE: Make MousEvent fully public
ZENGINE: Reset MouseEvent globalStateValue's when clearing them
ZENGINE: Convert _activeControls from a List to a HashMap
ZENGINE: Allow controls to be enabled or disabled