Add error matching dispatch for exception type
* usage:  with error.expected(KeyError):   x = d['nonexistentkey']
Coverage of advanced search box in Hosts

Adds a new web_ui module which can operate the advanced search box.
Adds tests testing the advanced search box in Hosts section.