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.
To me, the part in the squares is explaining "the code was XXX" so I put it right next to it to indicate that.  I especially do it if I had a variable named `code` to indicate that I am showing you the contents of that variable now.

I don't really care though, it's just what I do...