Enhancements to Formatter for parsing dates & numbers

Summary of various enhancements incorporated:
- `normalizeDateTimeValue` will parse, convert, and return a `DateTime` object for seamless usage across 32 bit, 64 bit systems or using within `IntlDateFormatter`.The `DateTime` object is supported for input & output across date values by 32 bit, 64 bit, as well as the `IntlDateFormatter` to format all date strings (including fixing of the Y2K38 bug). Fixes issue in #4989.
- `formatDateTimeValue` will now read a `DateTime` object from above method for formatting as needed.
- `InvalidConfigException` handling for date & time formatting to capture `DateTime` parsing errors.
- `asRelativeTime` has been changed to reflect usage of `DateTime` object
- `asTimestamp` has been changed to reflect usage of `DateTime` object
- `normalizeNumericValue` now parses empty strings and returns a zero - so no exception is thrown.