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"`.
Smooth scrolling.
smooth scroll; fix absolute scrolling of active element.
Smooth scroll; handle chrome bug and refactor.
Change smooth scrolling to requestAnimationFrame, tidy up scroller code
Merge branch 'smooth-scrolling-requestAnimationFrame' of github.com:mrmr1993/vimium into mrmr1993-smooth-scrolling-requestAnimationFrame
Smooth scroll; options above the fold.
Smooth scroll; revert entry logic.
Smooth scroll; initial handle keyboard repeat.
Smooth scroll; tune key-repeat code.
Smooth scroll; eliminate race condition.
Smooth scroll; tidy up.
Smooth scroll; add comment and remove unused variable.
Smooth scroll; comments and more minor tidy up.
Smooth scrolling; tidy up, better comments.
Smooth scrolling; note incorrect calibration; MUST BE FIXED!
Smooth scroll; fix displacement and calibrate.
Smooth scroll; yet more refactoring.
Smooth scroll; admit count prefixes.
Smooth scroll; incororate feedback from @mrmr1993.