Subresource Integrity: Improve parsing.

This CL more or less rewrites the parser with the goal of improving our
adherence to the spec. We now have reasonable error messages for parse
failures, and have tests for the individual components of the parser
(algorithms and digests). We also now correctly require 'ni:///' as the
URL prefix (we were previously ignoring the last '/').

BUG=355467

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

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