localised reference to $ in global scope, so will now work if being run under
jQuery.noConflict()
adding support for grouping, where if groupProp is specified as a parameter, and the property is not null on the object it will be put in an optgroup, which is handled supported by chosen.