Add a caching feature for downloading translations

# What is this for?
Translation download can be very slow. This PR aims to cache translations that are already been downloaded for reuse if no translations has changed. 

Cached translations gets saved in a `{local-translation-path}.cache/{skeleton-filename}.{md5-hash}/` folder
To clear the translation cache just remove the `{local-translation-path}/.cache` folder.

This feature is can be opt in by setting a config "enableCache" in phreepio.json
```
{
    "translator": {
        "service": "Phreepio\\Translator\\SmartlingTranslator",
        "config": {
            ...
            "enableCache": true
            ...
        }
    },
    ...
}
```