Profile liquid rendering

This commit adds a simple profiling system to liquid rendering. Each
liquid tag ({{ }} and {% %}) are processed through this profiling,
keeping track of the partial name (in the case of {% include %}), line
number, and the time it took to render the tag. In the case of {%
include %} and any tag that requires blocks (like {% if %} and {% for
%}), the tags inside of the partials and blocks are themselves marked as
children in the final profiling structure, letting any user of this
information view top level information and to dive down into more
details. With this, it's now possible to track down exactly which tags
are taking a long time to render.
Use an explicit stack for partial tracking for speed purposes

After running some profiling, it turns out that doing a variable lookup
in a Context is a slow operation, and doing that for every single tag
was significantly slowing down the system.
Default profiling to off, with flag to turn it on per Template