Improve remarkup performance (libphutil)
Summary:
As we've moved more logic post-cache, we've started paying a higher price for it. Reorganize some bits of the rendering pipeline so we do less work.
Mostly, this just means that we don't call setEngine() unnecessarily 20,000 times, and don't make multiple postprocessing passes for rules in more than one block.
Test Plan: Unit tests; profiled a 75% reduction of cost in Conpherence.
Reviewers: btrahan
Reviewed By: btrahan
CC: aran
Differential Revision: https://secure.phabricator.com/D5511