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

Use prototypal inheritance to ensure that the keywords available within
a `{{#with}}` block are not leaked outside the `{{/with}}`.

Added tests to prevent regression.

Closes #3652.
Closes #3753.

(@twokul && @hjdivad && @rjackson)
Merge pull request #3754 from rjackson/use_new_context_for_with_helper

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