Add ActionWatcher on state

First part of adding Action Watchers. Start with state package and will move on to api and apiserver packages next.
We probably don't do this everywhere, because it "can't happen", but I'd quite like it of we had a ,ok and errored out instead of panicking if it's not actually a string.