add html classes to inputs with the wrappers API

enable a user to add classes or other html attributes to inputs,
labels, and custome components using the wrappers API.

   b.use :input, :class => ['cool'], :id => 'whatever' }

A custom component which wants to support this functionality
should look in `options[:#{namespace}_html]` for the html
options to use.

An ArgumentError is raised if an html attribue is passed to any
component in `SimpleForm::FormBuilder::ATTRIBUTE_COMPONENTS` but
otherwise no validation is done - so it's possible to pass invalid
attributes to any tag generating component.