Added preliminary timezones support

There's some internal cleanup to be done, but it's rebased version of my old timezones pull request.

TODOs:
- [ ] implement or drop time drift computation (would be neat to use system ntp client or implement it in php) or drop it at all
- [ ] refactor it to use DIC and drop singleton
- [ ] check if we need to integrate it some more with new code
- [ ] clean the mess int the class internals