Initial fix for unrooted keypath expressions

__Not ready for merge!__

KeypathExpressions do not root correctly, meaning expressions like `{{#items:i}}{{foo[bar]}}{{/}}` don't work because `foo` does not get translated to `items.<i>.foo`.

Implemented additional `descriptor.r` resolveRef, resolution works including reassignment.

But unsure whether this could have been done by parent mustache instance. Varients of this logic are floating now around in three places: Mustache, ExpressionResolver, and KeypathExpressionResolver.

Not sure about unresolved path. I can't make it hit that branch via test (see added render tests).

Also don't think indexRef cases are covered. Certainly possible, though very edgy: `{{#obj:i}}{{i[bar]}}{{/}}` returns `o` for `{ obj: { foo: 'bar' } }`. Very edgy.