Add context support to the I18n class

This change adds Gettext context support to the I18n class. This
allows custom translations for verbs and nouns and more.