CRM-13580 - crmScope - Add support for "dynamic variable scopes" in Smarty

This allows one to temporarily a set variable for a brief duration -- and
restore the variable's original value afterward.

----------------------------------------
* CRM-13580: Set translation domain implicitly in extensions
  http://issues.civicrm.org/jira/browse/CRM-13580
CRM-13580 - ts - Set the default translation domain based on $extensionKey

Reset $extensionKey when loading each file. This puts the onus on developers
to set the extensionKey once in each file using {assign} or {tsScope}, but
it prevents the extension key from leaking unintentionally to other files,
and it allows developers to handle weird situations explicitly.

(Example weird situation -- using one extension to override another
extension's template; or having multiple extensions share a common
translation key.)

----------------------------------------
* CRM-13580: Set translation domain implicitly in extensions
  http://issues.civicrm.org/jira/browse/CRM-13580
Merge pull request #1786 from totten/4.4-smarty-ts

CRM-13580 - Set translation domain implicitly (for Smarty)