Fix coding standards error.
Fix support for Traversable when creating option groups.
Reduce the number of templates used.

By adding {{attrs}} I can re-add support for arbitrary properties on
option elements. As well as the [name => foo, value => bar] format for
option elements.
Add support for rendering complex option types.