Improves vcard import export has better encoding handling

Sorry but this is a large pull request.  I couldn't figure out how to make it smaller.  Here is a list of the changes:

- Fixed bug created when I changed Node->types() previously.
- Added comments in the code which point to the RFC so its clear why we do
  those things.
- Rewrote Text::vCard::Node->as_string()
- Text::vCard::Addressbook->export() now uses Text::vCard->as_string()
- Wrote code to wrap utf8 encoded strings
- Fixed encoding issues with MIME::Base64 and MIME::QuotedPrint
- Created and updated many tests
- Added new pod explaining encoding and utf-8 stuff
- Unescape '\', ';', and ',' when reading a vcard file per the RFC.
- Mostly things worked in the past if you were reading vcards but were very
  problematic if you writing vcards.  This situation has been greatly improved.
- Fixed a problem writing vcards which caused output to look like 'N;=Batman'
  instead of 'N=Batman'
- Fixed a problem with writing ORG values where the output was a ',' but should
  have been a ';'.
- Possibly other things I forgot to mention.

Note that the git might auto correct the line endings on the vcf files which will cause some tests to fail.  Hopefully your editor is clever enough to tell you what line endings are being used.  Make sure you have your git configuration autocrlf value set to fase: 

   git config --global core.autocrlf false

Also note this pull request is not backwards compatible with the current master branch.