Added support for multiple gettext domains

The I2P website revamp uses this patch to split the thousands of strings into different domains - `priority` translations, `docs`, `blog`, `misc` etc. - to make life easier for translators.

This does not change the default Flask-Babel behavior until the user sets the `default_domain` parameter or registers a callback for domain selection.