Add Ppl::Entity::PhoneNumber
Allow phone numbers to be initialized with a number
Modify the vcard encoder to handle the new Ppl::Entity::PhoneNumber
Make Ppl::Entity::PhoneNumber accept a type as a constructor argument
Encode phone number types when turning contacts into vCards
Decode vCard TEL fields into instances of Ppl::Entity::PhoneNumber
Decode vCard TEL field's TYPE parameter into Ppl::Entity::PhoneNumber#type
Amend the phone command to deal with the --type option
Modify the phone number output formatter to include types
Only send the string version of the vCard TEL field out into the wider system
Allow nonstandard TYPE parameters in the TEL field to be decoded

Looks like vpim is okay with allowing us to encode any old shit in the TYPE via
tel.location=, but will only decode the few standard values via tel.location.
See http://vpim.rubyforge.org/classes/Vpim/Vcard/Telephone.html:

    location     [RW]   home, work, cell, car, pager (Array of String): the
                        location of the device
    nonstandard  [R]    nonstandard types, their meaning is undefined (Array of
                        String). These might be found during decoding, but
                        shouldn‘t be set during encoding.

I am doubtful that users of ppl care about or are familiar with the details of
page 31 of RFC2426, so this commit's purpose is to paper over it.
Modify the address book phone numbers formatter to use Ppl::Entity::PhoneNumber
Enable users to update the type of existing phone numbers

This brings h2s/ppl#24 near to completion. For the sake of being thorough I'm
not going to ship this until the colorization work is complete as well.
Replace contact phone number listing code with Ppl::Format::Table
Standardise the column names in the phone command

This makes it so that the color config value for "phone_numbers" applies to both
the entire address book format and the single contact format.
Merge branch 'phonetype'
Version 1.21.0