VCardParser/VCardProducer: rewrite phone number logic

Split off the logic into a separate method for better separation of concerns,
tighten and clean up the code, and handle more formats/exceptions than the
previous code.
VCardProducer: rewrite email code to print pref property

This lets clients distinguish between primary, secondary and ternary email
addresses.
VCardParser: use builtin getParts() method to split compound properties

Don't use our own internal method, rely on the library.
VCardProducer: rewrite RELATED code

Shorten the code, add a VALUE=TEXT property to indicate the resource type of
the string that follows.
VCardProducer: use VObject library to construct ADR property

Don't use home-made parsing/imploding, use the library functions.
Among other things, they provide proper escaping.
Tag version 0.18, expand README