DocumentParser should flush itself on finish().

Before this patch, |DocumentParser| user had to explicitly
call |flush()| before calling |finish()| to flush any bytes that
may be remaining inside |m_decoder|.
This patch moves |DocumentParser::flush| call inside |finish()|
overrides, and makes |DocumentParser::flush| protected as this
method no longer needs to be called by user.

BUG=404107

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

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