Add blink public interface for ServiceWorker.state and .statechange plumbing

- Add WebServiceWorker::state() (as well as scope() and url()) accessor
- Add WebServiceWorkerProxy interface for chromium to call into blink (e.g. to call dispatchStateChangeEvent() method)
- Add WebServiceWorker::setProxy() to pass the proxy from blink to chromium

No binding code change / no tests yet, just adding public interfaces.

(Note: this is to implement the behavior described #198 [1],
which is not yet reflected on algorithms.md / spec)

[1] https://github.com/slightlyoff/ServiceWorker/issues/198

BUG=349919

Review URL: https://codereview.chromium.org/228263003

git-svn-id: svn://svn.chromium.org/blink/trunk@171259 bbb929c8-8fbe-4397-9dbb-9b2b20218538