* refactor rendering of options
* add tests
* support option groups with any of the other format of supporting the options
* allow each option groups to be specified as its own callback
add test for mixing options of optgroups in select dropdowns