Create UIDs if necessary
If ICalFormat::fromRawString()
processes a component that lacks a
UID property, it creates an instance with an invalid UID, which
violates RFC 5545.
This patch generates a UID from the component's property values, which will be the same every time it is processed.