Use show/hide instead of constructing dom elements

Rather than creating new elements on a match, just load all the tabs
into elements initially, then show/hide them as appropriate.

Hopefully this is a little more efficient.
DRY
More refactoring. pull stuff out of the chrome.tabs.query callback
Add interface hints
Add favicons
Forget click hint text, polish enter hint and favicons
Fix disappearing .selected element

If the currently selected element disappears, make the first visible
element selected.