Add timezone option

The original way to change timezone per request works well under most circumstances. However, we sometimes need different calendar to be in different timezones without polluting default timezone environment. The introduction of timezone as an option gives us a more flexible solution to these problems.
Definitely! I was using another approach earlier so I did not notice the lack of default option. Thanks for reminding.