Parsing HTML entities shouldn't call malloc

I've seen the HTML entity parser show up on a number of the backtraces for
malloc in profiles of top-1000000 sites. There's no reason to call malloc when
parsing HTML entities. This CL removes all the calls to malloc in the common
code paths.

This CL also untwists the code now that we don't need to support NEW_XML.
Rather than having a templated function do the work, we now do the work in a
normal function. Also, we no longer need to support XML's user-defined
entities, so we can go back to assuming that decoded entities are at most four
UTF-16 code units long, which removes the need for a variable length output
buffer. For good measure, I also replaced the buffer we use to recover from
parse errors with a Vector that has inline capacity so that we don't need to
call malloc for it in the common case.

This CL reduces the number of calls to malloc on http://thithtoolwin.com by
17%. This site isn't particularly pathological. It was just the straw that
broke the camel's back and caused me to write this CL.

R=eseidel

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

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