Added function to load translations from JS

For apps that support async translation loading, a new function
OC.L10N.load() can be used to asynchronously load the translations
for a given app.

Some app devs prefer to load their asserts dynamically from the JS side, for example using "OC.addScript()", "OC.addStyle()". This PR adds a method "OC.addTranslations()" to load them asynchronously.

Note: we cannot use that method in core yet because most of the code has no clear entry point where the translations could be loaded.

Please review @DeepDiver1975 @icewind1991 @th3fallen @LukasReschke 




99% sure the passed callback is called first, but for the 1% you can move the callback to a promise and do some promise chaining.

```js
return $.get(url).then(function(result) {
    if (result.translations) {
        self.register(appName, result.translations, result.pluralForm);
    }
}).then(callback);
```