Add a DateTimeFormatter class which allows overwriting the language and ...

Fix #12227

ToDo:
- [ ] Write tests
- [ ] Bring back "Last year/month"
- [ ] Add to service container with current user's locale and timezone as default
- [ ] Deprecate `Util::formatDate()` and `relative_modified_date()`

@DeepDiver1975 if you have a moment to look at the first implementation scratch
This is the fallback, so you dont have to set them on everycall.

I'd rather not have to add timezone and locale on each call to this class for normal frontend stuff