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.