filled in doc.py and contact.py

I changed the User pattern here because there appears to be an issue where copy() makes a shallow copy rather than a deep copy (though it claims it doesn't) such that calling replace_argument() doesn't always do what you expect it to. If you wanted to be consistent with that, initialize both parsers to None here in init() and keep the code you have in post() and add similar code in put()