Add i18n:context support

This set of changes does two things:

* It adds support for the ``i18n:context`` attribute in templates to set the translation context for a string. This inherits in the same way as ``i18n:domain``.
* It modifies calls to the translation function to pass in the translation context instead of Chameleon's internal econtext object.