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.
Scoped object interaction code into the object itself rather than global JS.
	Whether the object is in a recording state, etc. should be maintained
    by the object, not by a global state.  This way we can add complexity
    to the objects without polluting the global space/code.
Added some docs to the README.  Needs more work.
Added UI for selecting the type of object interaction that will occur.
	Only transpose works at this time.
Added IRule limitation of 1 rule per object-type interaction (obj <-> obj2).
Changed interaction UI to have user double-click to begin/end transpose.
Added Actions to really be called now, rather than canvas.remove() test.
Added code around UI for closing and locating the popup.
Added preparatory call for Interaction rules so we don't get the case where
    a&b interact, but a translates before b interacts so b never acts on
    the interaction.
Added trueIntersectsWithObject to handle intersection as "overlap".
    Fixes bug mentioned by Michelle when one object is wholly inside another.
Added a gnu makefile for transpiling coffee to js.  From simsam_app, run make.
Updated jQuery UI to version 1.10.3 to fix a bug with jQuery.dialog().
Added ability to fully delete an object/image from the canvas.  Three types:
    * Delete a single instance of an object (via menu)
    * Delete all instances of an object (via menu)
    * Delete class of objects and remove from django (drag to trash)
Includes:
    Added data-hash to images to track django unique id of object class.
    Added a trash button to the sim menu to drag objects into.
    Modified "Modify Sprite" menu to hide/show cleanly.
	Added url 'delete_image' which removes the image from the database as
        well as from all animations within the database.
Added Fabric.js bug-fix for scrolling.  Issue is resolved in Fabric 1.4.0
Updated Fabric.js to new version 1.4.0.
Fixed problem with drag/drop movement based on mouse position and scroll.
    We now adjust for the location used to pick up the object.
    We now use pageX/Y instead of clientX/Y to adjust for scrolling.
Fixed draggable issue where object relocates slightly on drop.
Fixed bug in Chrome where dropped object moves to upper left of screen.
    (introduced in last commit).
Reverting Fabric.js to version 1.2.9
    Fabric.js event conflicts with hammer.js's event model.
    Double-click and Drag are both broken with hammer.js + Fabric.js 1.4.0.
Simplified some css.
Merge branch 'interaction'
added glossary