Add functions for matching and filtering items by URL
Fix infinite loop when comparing invalid URLs and errors when comparing empty/invalid URLs

stringutils.endsWith() would incorrectly return true
if the suffix was one character longer than the search
string.

Also return zero as the match score if either
the item or target URLs are empty or invalid.
Show items matching the current tab if the search filter is empty

When the search filter is empty, default to showing only items
matching the URL of the current tab.

If no items appear to match the current tab then the full list is
shown for the user to search or browse.

If the user starts typing in the search box then the full list of
items is searched for matches.