Add tests for hakken and shoreline

@kentquirk @jh-bate 

This PR adds tests for the shoreline and hakken clients.

It also introduces some API changes (the biggest of which is renaming UserApi stuff to Shoreline).

Please look this over and let me know if you'd like anything changed.  My goal is to get this integrated with tide-whisperer within the week, so if you could look at it sooner rather than later that would be helpful.
I don't think it should be common practice.  I did it this way because I just wanted a simple way to create a HostGetter from a String and was annoyed by all of the boilerplate error handling that I had to do to get it.  This is basically just used in the tests.

Essentially, you can't just do the nice thing of

```
NewStaticHostGetter(url.Parse("http://www.google.com"))
```

because url.Parse returns an error.  After creating this, I created the URLOrPanic method as well, 'cause I wanted the same functionality somewhere else and decided to do use that.  I would be more than happy getting rid of this in favor of people using URLOrPanic when they want to do this sort of thing as well...