Refactored TimeZoneOffset

Simplified toDateTimeZone() thanks to a PHP bug now fixed:
https://bugs.php.net/bug.php?id=45528