Add support for selecting HTML5 inputs, change criterion to a blacklist

This is designed to address several issues:

* `<input type="range" />` elements don't respond well to the simulated
click; they always reset their value to the minimum.
* The lack of `mouseup` event from the simulated click makes
`<input type="range />` elements slide when the mouse is moved.
* HTML5 adds a large number of text-based `<input>`s that should be focused
like the `type="text"` case, for consistency. (Using a blacklist halves
the number of types we have to list.)
* An `<input>` with a `type` the browser doesn't support is rendered as
a `type="text"`, so a blacklist ensures that the focusing action is
consistent on all elements behaving as `type="text"`.

I have been testing with [this demo](http://html5doctor.com/demos/forms/forms-example.html).

This fixes #1201.
Why do we have a try without a catch? This needs an explanation of why it can fail.