Bastion: improving the i18n filter and translate details page.

Improvements include:
 - Using English strings for translation keys.
 - Using dictionaries with named keys for replacements.
 - Tests

Instead of using the existing katello i18n global javascript object
here we are using our own dictionary file.  The dictionary file still
uses the existing gettext interface but uses the english word/phrase
instead of using keys.  This allows us to display English as a backup.

We also are using dictionaries instead of lists for the translated
strings.  This makes it easier on the translators as it should be
more obvious what value is getting replaced in the string at runtime.