API cleanup for SeasidePerson

SeasidePerson is not currently able to be used to edit contacts whose details must be synchronized with external sources.  This PR modifies SeasidePerson so that the API will not conflict with the underlying QContact representation.

I think this change is now ready for review.  Avatar detail handling is still not in line with QContact, but it involves more existing logic than the other changes, and should be handled separately.