brute-forced to_tz into cal.py

This works, but only when VTIMEZONE components come before DATE-TIME
components that make use of them. While this seems to be the standard
way to generate icalendars, there is no word about this in the RFC.

This isn't pretty, but there are so many exceptions in from_ical()
already, that one more shouldn't make much of a difference.

No changes whatsoever to to_tz.

Tests are needed.