Fix for setting up the initUpdater in the AppController

In the previous implementation we did a really unnecessary string conversion.

This solution is shorter and cleaner.
It does fix #1065 however it does not solve the underlying discussion about the document plugins unencoding.
Don't add a terminating slash to the base URI

Only replace extra slashes with a single slash.
Catch trailing / before query building streamer

Closes #1086
whitespace
Fixup last to not break share URL
Found hidden uri hardcode in streamsearch

It was hiding in the manage_new_data(). It generated the standalone url for the annotations in the old hardcoded way. Fixed.
whitespace
remove dependency on $route for showEditor
unused imports
driver.get() instead of driver.refresh() in tests

Something changed recently, maybe with a new FF version, and the way
the WebDriver implements refresh() breaks angular's routing and view
code. The result is lots of tracebacks and digest iteration exceeded
messages and a broken application.
Stay DRY and avoid unnecessary scope attributes

https://en.wikipedia.org/wiki/Don%27t_repeat_yourself
Remove some redundant code
Fix for #1096
Fix regression introduced in previous cumit, and remove more useless stuff
Search refactoring 1

This does the following:

 * Introduces the `viewFilter` service, to filter annotations according to a given query.
 * Factor out the filtering code from the controller into this new service. (As described in #1092)
 * Enhances the tab searching: now we can search for multiple tags.
Merge pull request #1099 from hypothesis/search-refactoring2

Search refactoring 1 - try 2
Fix index name was not set as a true json path

Fixing the fix for the #1065
Creating a reply gives an exception

Like #1096, this is an angularjs upgrade issue too, which was already fixed once, so strange.
Scope cleanup part 1

User visible:
 * Introduced the "Tab", "Selection" and "Comments" views, as per #1091
 * Fixed the following problems:
   * Clicking on a tab does not update scope name
   * Clicking on a highlight does not update scope name
   * Clicking on heatmap does not update scope name

Internal:
 * Change function names:
   * applyview -> applyView
   * applysor -> applySort
 * Move the `view` field from viewer's scope to rootScope
 * The `updateViewer` and `showViewer` methods of the Hypothesis class
   no expect a `viewName` parameter (alongside the list of annotations),
   which they use to update the `view` field of the rootScope.
 * Added a `getComments` RPC call in guest, to collect comments for comments
   scope.
Simplify scope switch code