OGoContacts
===========

Document abstractions for Contact records. Contact records are stored in the
"company" table in the database and are mapped to the Company EOEntity, which
is why all the stuff is named "SkyCompanyXXX".


SkyPersonDocument
=================
addresses            -> array of addresses
phones               -> array of telephones
addressTypes         -> array of addressTypes (strings) [address.type]
phoneTypes           -> array of phoneTypes (strings)   [phone.type]
address.type+"Phone" -> address
phone.type+"Address" -> telephone


Class Hierarchy
===============

  [NSObject]
    [SkyDocument]
      SkyAddressDocument
      SkyCompanyDocument
        SkyEnterpriseDocument
        SkyPersonDocument
    [SkyDocumentType]
      SkyAddressDocumentType
      SkyEnterpriseDocumentType
      SkyPersonDocumentType
    [EODataSource]
      SkyAddressConverterDataSource
        SkyEnterpriseAddressConverterDataSource
        SkyPersonAddressConverterDataSource
      SkyCompanyCompanyDataSource
        SkyEnterprisePersonDataSource
        SkyPersonEnterpriseDataSource
      SkyCompanyDataSource
        SkyEnterpriseDataSource
        SkyPersonDataSource
      SkyCompanyProjectDataSource
        SkyEnterpriseProjectDataSource
        SkyPersonProjectDataSource
      SkyContactAddressDataSource
      SkyEnterpriseAllProjectsDataSource
    [SkyAccessHandler]
      SkyContactsAccessHandler
    SkyEnterpriseDocumentGlobalIDResolver
    SkyPersonDocumentGlobalIDResolver
