So it looks like what is basically happening here is that `_parseItemsFromOptions` is parsing the DOM out into one of two data structures (a "no-groups" structure and a new "groups" one)

When there are groups, the format of `this.items` is exactly the same as no-groups, except there are extra "group header" items added to this.items?

So it seems to me that `_parseItemsFromOptions` can be simplified, and just walk the DOM of the select and build the "group header" items as it goes..