Add query string handling to router
Switch mock params to use query strings

- Set mock params using query strings in URL (can also set MOCK_PARAMS
  env variable, each param will be overriden if also present in URL
  query string)
- Update mock params on each route change
- Simplify mock setup in app.js
Make JSHint pass
Load mock params from root url query string only

Mock params usually require a browser full reload (especially for
automated e2e tests where we want to start fresh on each test).

So instead of grabbing from query string after hash (ex:
"/#/patients?foo=bar"), grab only on
app init and from query string before hash (ex: "/foo=bar#/patients").

Query string before hash will stay in URL during app lifecyle, but that's
a good things as it shows which params you're using and you can easily
hit refresh after making code changes and keep same params.

We also don't update mock params on each route change anymore, as that's
not very useful, we generally want to refresh browser. If you do need to
update mock params during app lifecyle, you can always use
`mock.setParams()` in the JavaScript console.
Move query string parsing in core service
Change e2e tests to use new qs mock params

- Use 'skip.auth' and a path after the hash to take tests directly to
  the page they are testing
- Add a random token to the query string (before the hash) to force
  browser refresh between each test (start from a clean slate)
Add docs a mock params query string in README
Merge pull request #25 from tidepool-org/query-string

Test different app behaviors with mock parameters via query strings