[FrameworkBundle][Translation] moved cache to Translation component (new PR)

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #10628
| License       | MIT
| Doc PR        |

This supersedes the PR #11197 (while including the changes made by it). I removed the `$options` argument for `Symfony\Component\Translation\Translator` and replaced it by a public method `enableCache($cacheDir, $debug = false)`. It aims to solve what @fabpot said about passing an array of options in #11197 
while not modifying the existing constructors
.
you must add the call asserting a valid locale here, otherwise you reintroduce the security issue on next line. The call to ``assertValidLocale`` is precisely the security fix