Allow "beforeselect" to transmit the item that is being selected

Previously, "active" was hardcoded to this.activeItem. This change allows the triggering action to specify a different active item. This is useful for "beforeselect" to announce which item is being selected before it is actually selected.
Add test for "destroy" method

Add test to confirm elements are returned to their original states
after "destroy"
Fix inconsistent whitespace in destroy test
Update destroy to completely clean up after itself

Improved the create and destroy methods to better examine changes to the
element and restore it to its original state. Updated associated tests
to catch element changes as well as children.
Merge branch 'master' into 3dtransforms