update `this.context` with data context on query calls
allow passing a function for maximumSelectionSize
ajax url function is now passed same arguments and called with same context as data option
adding defensive check for existence of select2 on the target element during the document mousedown/touchend events
Merge pull request #764 from socialceramics/postdestroy-dropdown-error

Adding defensive check during the document mousedown/touchend event handler.
Fix issue introduced by 20950e0f0cbbaa2ed9ddb3306320a69d4691c87d.
Selected items and other invisible items were not ignored by highlightUnderEvent when calculating index.
This caused highlighting of incorrect items when the list contained hidden items.
Merge pull request #768 from bcoughlan/master

Fix issue introduced by 20950e0.
#619 : val takes an optional argument to avoid triggering 'change'
do not close the dropdown on resize or scroll, instead keep it positioned. fixes #753 #669 #719
fixes #770
remove dead code. fixes #772
dont error out when 'x' is removed really fast multiple times. fixes #745
fix scroll event handling since it doesnt bubble. also add a shim behind the dropdown, this allows it to properly close even when used inside modals. sometimes modals will place their own shim that closes the modal and aborts the default mousedown event. in such cases the modal would close but the dropdown element would still float on the screen now detached and the only way to close it would be to make a selection
fix highlighting bugs introduced by disabled option support. fixes #765 closes #775
Merge pull request #771 from phtrivier/issue-619

#619 : val takes an optional argument to avoid triggering 'change'
by default do not trigger change from val. #771 #619
Merge pull request #756 from socialceramics/url-function-with-arguments

Ajax `url` option (when function) now called with same arguments and context as `data` option
better support orientation change on mobile. #782
allow '0' vals to be set. fixes #646
use the dropdown mask to close open flyouts instead of a global listener. also move the original element off screen instead of hiding it so clicking a label focuses select2 instance