Speed improvements

Android focussed speed improvements.
Reduced GC load with a flywheel on short strings.
Optimized core consumeTo methods.
Speed improvement, final marks

Helps with this abstract hierarchy
Optimized character reference searches
Reduce GC by not forcing string builders
Less GC in cache check

At expense of getField
Use ArrayList instead of LinkedList

Much less GC - less iterators, lest next items, etc.
Merge branch 'master' into speedbird
Reuse String[] for inSpecificScope

Saves on GC
Reuse Tokens, instead of creating all the time

Saves an awful lot of GC. These are just data transfer objects, so not
worth creating every time.
Name safety
Short-circuit addChildren

Saves a bunch of GC on each insert.
Use a CharacterBuffer in CharacterReader

Saves two large char[] allocations (round-tripping through string)
Revert "Use a CharacterBuffer in CharacterReader"

This reverts commit e47d90818b1918b436d252212e90a03ddf503b59.

On further review this has a negative impact. Counter intuitive, need
to dig in more.
Don't allocate new char[]s for every character reference
Changelog
Merge branch 'speedbird'