Reference timezone support for expanding events and freebusy generation.

This patch has the needed changes to allow fruux/sabre-dav#548 to be fixed. I also found a few more issues related to expanding that are also fixed, and I just spilled tea all over my keyboard.

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.

cc: @armin-hackmann 
`in will`?