Update SCT serialization and other format details in Expect-CT reports

This adds a net::ct::EncodeSignedCertificateTimestamp function alongside the
existing CT serialization functions, and uses it to properly encode SCTs in
Expect-CT reports.

The relevant spec change is
https://github.com/httpwg/http-extensions/commit/20c5cfd5ef5b630e142b3251ecafc004ad8f2092,
though it hasn't made it into a published draft yet. Before, we were including a
JSON object containing a subset of information from the SCT based on the source of
the SCT, but that was deemed unnecessary and now the spec just says to include a
standard serialization of the SCT.

The other report format changes made to bring the implementation in line with the
spec are:
- Shortening the 'origin' string values
- Wrapping the report in a JSON dictionary with a single 'expect-ct-report' key

BUG=679012

Review-Url: https://codereview.chromium.org/2959593002
Cr-Commit-Position: refs/heads/master@{#482905}
5 files changed