First round of changes for interactive behaviors.
    * Recording now understands when objects intersect.
    * Rules and Actions were broken out to support more besides transform.
	  Note: Rule=When, Action=What
Added controversial iRules to Sprite to handle a second stage of rule so that:
    1. Process all transformations
    2. Check for intersections and process appropriate interactions.
  N.B. This doesn't work right yet as we process 1, then 2 for each object.
  This must be done globally for the multi-pass approach to work.
Fixed toggleRecord to only respond to doubleclk on the canvas.  This should
    probably be enhanced to only support doubleclk on the actual object
    being manipulated.  Fixes issues with clicking 'Once' too quickly.

Added lots of unnecessary debugging that should get removed before commit.
Fixed the issue where 'Run Once' would cause objects to lose their Fabric.js
    control interfaces and do other weird things.  This was caused by setting
    properties in Fabric.js (images), but never calling setCoords which updates
    all of the Fabric.js internal structure information.
Interaction behaviors are now only assigned when we are in "record" mode.
UI is still non-existent, but most of the functionality is working for
    Actions and Behaviors to be developed from here.