Configurable I18n provider

- Allows assigning a custom I18n provider to be used for resolving I18n keys

(Not sure why all the merge commits are being listed as part of this PR)