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.
is it still `json:"userApi"` so people know what shoreline is?