Encoding, label support, and hybrid optgroup/option support.

... options on the top level, and supports label attributes on <option> tags.

Fixes #39, fixes #40, fixes #41.