chore(refresh): Avoid table deletion before a version is loaded

Deletes a current translation table only if it's new version is loaded successfully.

To achieve such behavior the loadAsync() and uses() were rewritten.
The loadAsync() method is now responsible only for loading a translation table.
A responsibility of handling $nextLang is moved to uses() to increase a reusability of
loadAsync() method.