Async Clipboard: Split out Clipboard type-specific logic for Encoding/Decoding.

- clipboard-type-dependent code mostly split out to
ClipboardReader/ClipboardWriter.
- ClipboardWriter/ClipboardReader have two child/sub/derived classes,
one for images and one for text.
- Also did minor refactoring, like appending a '_' for the clipboard
promise's sequence checker and removing the clipboardtype member var.

Bug: 150835
Change-Id: Ic870db9b5a0be7635419330d1c24b96eb51f0edb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1535339
Commit-Queue: Darwin Huang <huangdarwin@chromium.org>
Reviewed-by: Victor Costan <pwnall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#648039}
9 files changed