Update to do a better job cleaning up after itself

Previously, the code left "residue" on the affected elements after "destroy" in the form of extra classes and styles that weren't there before the plugin was initialized. This checkin helps remove some of the effect.
Cache instances of $(this)
this.element is already a jQuery object, do not need to re-wrap it
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.
Merge pull request #11 from PizzaBrandon/master

fix: restore styles on widget destroy
fix: beforeselect-event didn't pass the current selected item