Slightly improve the performance of XHPASTTree.
The performance breakdown right now is basically (for ~1000 LOC,
on my machine, etc., etc.)
- 15ms: parse
- 15ms: json_decode
- 150ms: building datastructures in PHP
So we're spending an order of magnitude longer transforming the
parse into a usable format than actually parsing the source. This isn't
great but I don't see a clear path forward that doesn't trade off a huge
amount of flexibility. We can port clients to C if we ever need to.
This makes tree construction around 20-30% faster by microoptimzing some
stuff, but it's still not fast.