User context

User context implemented with all related country management, and integrate it in common data class.

Please @schleichardt review.
Please don't throw a pure RuntimeException. Mostly I would say you should create a subclass, but in this case the shop should not even start if the configuration is invalid. So you have to touch plugins.Global.