Better date parsing and formatting including 32 bit support

Enhances `normalizeDateTimeValue` to return a `DateTime` object instead of a converted double value, that fails on 32 bit PHP systems. The `DateTime` object is supported for input & output across date values by 32 bit, 64 bit, as well as the `IntlDateFormatter` to format all years. (including fixing of the Y2K38 bug). Fixes issue in #4989.
indentation?