OStatus/PuSH consumer

Adapting what's currently in FeedSub plugin...

Todo

 * make sure delivery save-time is acting correctly
 * replace the hacked-up feed parser with a better-working one
 * parse and save personal information from the feed (PortableContacts etc) at subscribe time
 * real name
 * location [name / lat / lon]
 * homepage
 * bio
 * avatar
 * tags
 * parse and save personal information on updates in feed (will this just always be in the feed? not super efficient but no worse than twitter api ;)
 * parse notice info
 * text atom:summary
 * html atom:content
 * attachments as link/rel=enclosure (can delay consumption on that for now)
 * topics stored as atom:category, SHOULD be tags (rel-tag)
 * response stored as thread:in-reply-to
 * attention stored as omb:attn
 * repeat/retweet stored as omb:forward
 * location info as geo-rss (already in our feeds)
 * parse activitystreams meta-information
 * delete? [most AS stuff will be on the Salman backchannel]
 * Integration
 * move from plugin to core (?)
 * clean internal API for establishing a subscription for the sub UI to use
 * clean internal API for feed parsing that can be shared w/ salmon code for handling replies
 * make sure we have clear rules on normalizing foreign usernames:
 * http://status.net/trac/ticket/223
 * http://status.net/trac/ticket/1253

Maybes
Things that are less vital, but nice if they get done.


 * parse activitystreams meta-information
 * delete message (advisory -- we can't force the client to delete)
 * block/force unsubscribe (advisory -- we can't force the client to unsub)
 * reply-to / conversation ID (not sure how feasible this is)
 * (?) accept enclosures as file updates
 * store original timestamps rather than delivery time
 * unsure whether this is a good idea; delayed delivery leading to a later received time would probably just be more confusing if it showed the original time, appearing in the wrong part of the timeline