[BUGFIX beta] Ensure aliased {{with}} is not shared.

Copying the available keywords into a separate object that is only
available to the contents of the `{{with}}` block prevents the aliased
keyword (made via `{{#with foo as bar}}`) from being available outside
the context of the block.

Closes #3652.
Closes #3753.

(@twokul && @hjdivad && @rjackson)