Implemented support for 'multiple' attribute / multi-selection. Behaviour operates via clicks to options toggling their selection; click on dropdown or outside to collapse.

Allow select() to accept a boolean to deselect options when in multiple mode, and wrap up as deselect()

refactored selection text handling and change callback execution for reuse between normal/touch UIs
sort selections by option order before displaying
do not render first selection until after creating menu elements; it will be incorrect before then
handle labels and indexes correctly in multiselection mode. also sanity check to not add same selections multiple times
fix warning when removing last selection from a multiple element
sorting should only run on multiple inputs
fix handling of indexes. didn't matter on desktop but affects logic of mobile dropdowns
Merge remote-tracking branch 'pospi/master'