Issue/12227 formatDate() improvements

* Add support for giving L10N
* Add support for $options from `$l->l()` to `formatDate()`
* Add support for relative dates (can be done with above step, as Punic\Calendar just requires adding a ^ to the format string)

Fixes #12227 

@DeepDiver1975 @PVince81 @MorrisJobke 
Well the options are already part of our $l->l() method, they are just not tunneled until the end.
But sure, we can create a new class which takes L10N and TimeZone as constructor arguments and then has only few proper methods. However I think this patch here can be easily backported.