Support for dotted names and a single dot for the current env context.

This pull request adds support for dotted names (e.g. `{{foo.bar}}`) and a single dot (`{{.}}`) for the current env context. The latter requires knowing the current context even if it's not a dict so `struct:environment` and `with-env` are updated to push non-dicts onto the stack and then just ignore them during non-dot lookups.

[The relevant mustache spec](https://github.com/mustache/spec/blob/master/specs/interpolation.yml#L124).