Store the Document's encoding on the Document

This adds storage to a Document for its encoding as a prerequisite for
moving ownership of the decoder from the Document to the parser. The
encoding may be set explicit or by the decoder. This storage is temporarily
redundant with the Document::m_decoder->m_encoding storage, but this will
stop being redundant when the decoder moves.

We'll have to store a few more pieces of information on the Document such
as information about where the encoding came from in future patches.

BUG=277886

Review URL: https://chromiumcodereview.appspot.com/22909053

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