Uniter API now has WatchActions

This commit adds state/api and state/apiserver endpoints for
WatchActions.
I'm not suggesting you try to hit the error handling lines during the tests by hitting the real API. With a little restructuring you should be able to have it so you can replace the API call (currently u.st.call()) with a error-returning implementation during tests.

The trick is to introduce a function variable that returns the function to call to make API calls. See state/api/usermanager/client_test.go for an example. Specifically TestUserInfoNoResults and TestUserInfoMoreThanOneResult. They replace call() in client.go in order to simulate various error conditions.