Uniter API now has WatchActions

This commit adds state/api and state/apiserver endpoints for
WatchActions.
I assumed that since the only error cases here arise from other packages and types, which are suitably tested, that it would be redundant to test them here.

```go
unit, err := u.getUnit(tag)
```

```go
watch := unit.WatchActions()
```

```go
return nothing, watcher.MustErr(watch)
```

In each case, error values will only happen in cases of bad values being passed through this method.

If redundant tests are required, that's fine!  I've been assuming that errors in methods outside of mine are exercised in those methods.  I'm only wondering about what extent is appropriate.