extend selectOptions to accept value:label map

It is often useful to have a lookup table for converting between
underlying values which are actually stored and transmitted and the
human-readable labels that represent them. This extension of
selectOptions allows such a lookup table to be used to populate a
select directly. By default, the options will be sorted alphabetically
by label; pass a `comparator`function or property name string to
override this ordering (which delegates to `_.sortBy`).

TL;DR:
Converts

bindings: {
  'select#sounds': {
    observe: 'sound',
    selectOptions: {
      collection: {
        moo: 'Cow',
        baa: 'Sheep',
        oink: 'Pig'
      }
    }
  }
}

to

<select id='sounds'>
  <option value='moo'>Cow</option>
  <option value='oink'>Pig</option>
  <option value='baa'>Sheep</option>
</select>