Remove WTF's base64 decoder

This CL adds functionality to modp_b64 to support the looser padding
requirements in Blink. It adds two new policies for decoding:

1. Forgiving mode, which matches the infra spec except for removing
   whitespace from the input. Ignoring whitespace in modp is doable
   but a very intrusive change.
2. No padding validation mode, which also allows for arbitrarily many
   pad chars.

With these two policies implemented, the only real logic needed in
blink is the whitespace stripping for forgiving mode. We do this only
in cases of failure to ensure the "happy path" does not require an
O(n) scanning operation.

When the first caller in //base needs forgiving base64 support, it should
be relatively straightforward to implement that separately.

Bug: 1383507
Change-Id: I1c1ba4b606351a6311893506e82ba19032beafa9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4035835
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Charlie Harrison <csharrison@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1074871}
NOKEYCHECK=True
GitOrigin-RevId: 3377ad0a735fcf732e5afdd8c0d698ad6257e0b4
3 files changed