Service Worker: Use more specific errors when StartWorker fails
UMA shows StartWorker fails more than expected, but most errors are just
the generic START_WORKER_FAILED. Use a more specific error when appropriate.
This has some user-visible behavior change in the error message that register()
rejects with. For example, a syntax error used to fail with "ServiceWorker failed
to install"; now it fails with "ServiceWorker script evaluation failed".
A Blink layout test is added for error messages, which didn't have test
coverage previously.
BUG=448003
TEST=https://codereview.chromium.org/
1058323004
Review URL: https://codereview.chromium.org/
1063823005
Cr-Commit-Position: refs/heads/master@{#325261}