Bastion: using gettext rather than i18n filter.

This change uses an external library to extract strings into
gettext format for translation.  Once the files are translated
the library "compiles" the translated strings into a JS translations
file for replacement by angular in the application.

TODO
- [ ] Fix PR comments
- [ ] Once we are clear to merge, replace new i18n occurrences.