Don't interpret the REV: field as a Unix timestamp

Evolution caused Sabre-Zarafa to blow up by not sending Unix timestamps in the
REV: field, but MD5 hashes. Remove read support for the REV: property entirely,
because we don't know how to interpret it, and we can't save it to MAPI (the
last-updated timestamp is set by the database layer, outside our control).

Keep write support, since it conforms to RFC 2426, see:
  http://tools.ietf.org/html/rfc2426#section-3.6.4
VCardProducer/VCardParser: upgrade to Sabre-VObject 3.x

Sabre-VObject 3.x makes a couple of non-backwards-compatible changes; update
the code to work with the new version. Sabre-Zarafa will now no longer work
with Sabre-VObject 2.x, which is the version currently bundled by SabreDAV.

The big reason to change to Sabre-VObject 3.x as soon as possible is that it
fixes the escaping bugs that are rampant in version 2.x. In particular,
newlines in notes were breaking the sync on OS X for a lot of people.
VCardParser: add utility function to get TYPE parameter values

Don't duplicate code, use a utility function to get the values and put them
into an array.
VCardParser/Producer: correct handling of CATEGORIES property

This is a multivalue property, so use VObject's multivalue methods to get the
data. The MAPI representation is actually a PHP array, so no need to implode
the values into a string.
VCardParser: add emailConvert() function

Split up the large main function, keep an overview.
VCardProducer: temporary workaround for VObject 3.0.0-alpha

Passing arrays as parameters to parameters doesn't work yet; implode the
parameters into a string ourselves. This change can be reverted once
VObject-3.x supports the 2.x creation syntax.
VCardParser: parse IM addresses in separate function

The IM address format turns out to be surprisingly involved. Our handling of it
is really simple (first IM address we find wins, since we only have one slot
available), but this offers some room for future improvement.
VCardProducer: don't display mobile phone contacts twice

Because cellular_telephone_number and mobile_telephone_number are synonyms for
the same MAPI key, the value was being added to the VCard twice. Remove one of
the synonyms.
README: update for version 0.20
VCardParser/Producer: add support for some proprietary tags

These tags have 1:1 mappings to MAPI values, which makes them easy for us to
implement.
VCardParser: add sortAsConvert()

Concentrate the parsing of the SORT-AS values in a single place.
VCardProducer: SORT-AS property should be SORT-STRING

The SORT-AS property is a vCard 4.0 invention; in vCard 3.0, the property is
called SORT-STRING. Add code to generate the SORT-AS parameter to the N
property for vCard-4.0 cards as specified in the RFC; the catch is that the
underlying Sabre-VObject 3.0.0-alpha4 library cannot properly escape the value
yet (embed it in double quotes). Hope this doesn't break anything - the default
is not to create version 4.0 cards.
Update ChangeLog and config version to v0.20