BREAKING: Refactor Language classes (introduce LanguageKey, distribute functionalities to other classes)

### Variables for languageKey `X` have been already updated over 50 times since release

Followup from https://github.com/cargomedia/CM/pull/1022 https://github.com/cargomedia/CM/pull/1089
cc @mariansollmann 

```
CM_Exception_Invalid: Variables for languageKey `Upgrade` have been already updated over 50 times since release in /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Model/Language.php on line 377
     0. {main} /home/app/serve/public/index.php:0
     1. CM_Response_Abstract->process() /home/app/releases/20140617124141/public/index.php:10
     2. CM_Response_Page->_process() /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Response/Abstract.php:42
     3. CM_Response_Page->_processPageLoop(CM_Request_Get) /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Response/Page.php:106
     4. CM_Response_Page->_processPage(CM_Request_Get) /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Response/Page.php:80
     5. CM_Response_Page->_renderPage(SK_Page_Feed) /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Response/Page.php:142
     6. CM_RenderAdapter_Layout->fetch() /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Response/Page.php:95
     7. CM_Frontend_Render->fetchViewResponse(CM_Frontend_ViewResponse) /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/RenderAdapter/Layout.php:67
     8. CM_Frontend_Render->fetchViewTemplate(SK_Layout_Default, 'default', array) /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Frontend/Render.php:372
     9. CM_Frontend_Render->fetchTemplate('vendor/cargomedia/sk...', array) /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Frontend/Render.php:364
    10. Smarty_Internal_TemplateBase->fetch() /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Frontend/Render.php:78
    11. content_53a038131a75f1_81190053(Smarty_Internal_Template) /home/app/releases/20140617124141/vendor/smarty/smarty/distribution/libs/sysplugins/smarty_internal_templatebase.php:182
    12. smarty_function_component(array, Smarty_Internal_Template) /home/app/releases/20140617124141/tmp/smarty/100_en^b890a5b6da49c3173d19bdddd070023e5ea08152.file.default.tpl.php:138
    13. CM_RenderAdapter_Component->fetch() /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/SmartyPlugins/function.component.php:14
    14. CM_Frontend_Render->fetchViewResponse(CM_Frontend_ViewResponse) /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/RenderAdapter/Component.php:23
    15. CM_Frontend_Render->fetchViewTemplate(SK_Component_Navigation, 'default', array) /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Frontend/Render.php:372
    16. CM_Frontend_Render->fetchTemplate('vendor/cargomedia/sk...', array) /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Frontend/Render.php:364
    17. Smarty_Internal_TemplateBase->fetch() /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Frontend/Render.php:78
    18. content_53a038131ad2f1_05081766(Smarty_Internal_Template) /home/app/releases/20140617124141/vendor/smarty/smarty/distribution/libs/sysplugins/smarty_internal_templatebase.php:182
    19. smarty_function_menu(array, Smarty_Internal_Template) /home/app/releases/20140617124141/tmp/smarty/100_en^44fc49445257fdf080502aa46cb641915aba5c76.file.default.tpl.php:48
    20. CM_Frontend_Render->fetchTemplate('vendor/cargomedia/sk...', array) /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/SmartyPlugins/function.menu.php:96
    21. Smarty_Internal_TemplateBase->fetch() /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Frontend/Render.php:78
    22. content_53a03811dc91b2_18255137(Smarty_Internal_Template) /home/app/releases/20140617124141/vendor/smarty/smarty/distribution/libs/sysplugins/smarty_internal_templatebase.php:182
    23. smarty_function_translateVariable(array, Smarty_Internal_Template) /home/app/releases/20140617124141/tmp/smarty/100_en^ffe0d5a335b2357fdaeed8e3fe6fd6c0ec0cd009.file.default.tpl.php:43
    24. CM_Frontend_Render->getTranslation('Upgrade', array) /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/SmartyPlugins/function.translateVariable.php:10
    25. CM_Model_Language->getTranslation('Upgrade', array) /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Frontend/Render.php:280
    26. CM_Model_Language->_setKey('Upgrade', array) /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Model/Language.php:56
    27. CM_Model_Language->_setKeyVariables('Upgrade', array) /home/app/releases/20140617124141/vendor/cargomedia/cm/library/CM/Model/Language.php:351
```