Fixed 'clear' function, added 'setData' function, added 'isSilent' parameter

Added public setData function, so that all data (e.g., available values) can be replaced at any time.

Added isSilent parameter on some functions to optionally suppress 'selectionchange' event from being triggered, which is useful when modifying the selection programmatically (as opposed to when the user changes the selection).

 Changed clear function to prevent errors observed when the old code would call removeFromSelection. Inside the JQuery 'each' function, errors were thrown because the 'json' loop parameter was null. I think there was some kind of race condition caused when _selection was passed to removeFromSelection and _selection was modified in the JQuery 'each' function.