Handle odd data lengths in UTF-16 decoder

The UTF-16 decoder was silently dropping ignoring odd byte lengths.
Per the Encoding standard, it should emit U+FFFD (replacement char),
and set the error flag for interested callers.

This makes TextDecoder match the behavior in Firefox.

BUG=277035

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

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