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?given-name=hi&family-name=there&dob=9999-03-11&email=em%40mr.co.ak&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DetC6Q6wLUNs%26pxtry%3D3&phone=00447948319555&shoes=11.5&skill=70&address=hi&postCode=omg+karen&country=United+Kingdom&cardtype=on&cardName=cardy&cardNo=9999999999999999&security=939&expiry=4449-01).