Reference timezone support for expanding events and freebusy generation.

This patch has the needed changes to allow fruux/sabre-dav#548 to be fixed.

This is not 100% ready for merging.

Todos:

* [ ] Unittest for `Sabre\VObject\Property\ICalendar\DateTime::getDateTime()` with $timeZone argument.
* [ ] Unittest for `Sabre\VObject\FreeBusyGenerator` taking advantage of the `$timeZone` constructor argument.