We need to make an overload for `Register` method, which will accept `Func<CultureInfo, IFormatter>` to be able to get actual (supplied/current) culture instead of made-up, with which Formatter is registered. 

So for example if I have "ru-RU" as a current culture and configurator will select `RussianFormatter` because it matches "ru" culture, but the formatter will receive "ru" instead of "ru-RU".

Another application of this method - you don't need to register `DefaultFormatter` multiple times.