Small partial improvements: enable arguments to passed into inline partials,
and whitespace around arguments (allowing potentially nicer looking call sites).
Also, possibly more importantly, add a pure-Python version of the tests which
until now have been mostly implemented in Java.
Don't push the context onto the stack for ? operators i.e. {{?object x}} becomes
{{?object object.x}}. This is an attempt to reduce the leak of identifiers that
tends to make templates hard to reason about.
Further tighten up the identifier leaking. (1) make @ refer explicitly to the
current item in a {{#list}}, and force values from the list to be referenced
with @. @ is not allow to be used anywhere else, (2) don't put local state onto
the initial stack for partials.
Add an internal context identifier _, so far containing an "errors" property
which is populated with the errors so far, if any.