Simplify ServiceWorkerVersion::StartWorker code and allow concurrent calls

** NOTE: No functional changes in regular cases, existing code should just work **

- Stop using multiple observers
- Allow concurrent Start/Stop
- Add service_worker_version_unittest

For cleanup & as a preparation for implementing more robust SendMessage/DispatchInstallEvent

BUG=313530
TEST=ServiceWorkerVersionTest.*
R=alecflett@chromium.org
TBR=jam

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248674 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 248674