More stable article keys.

Some feeds change the publish times of their articles seemingly at
random. Unfortunately, we were using this time time to uniquely
identify articles. In effect, some feeds appeared to have a completely
new set of articles when, in fact, they just had one new addition, but
brand new publish times. This caused excess datastore operations,
which is bad, but it is even worse now that we changed how we
determine the latestness of articles. Since latestness is now based on
when an article is first added, all articles in these feeds were
considered to be latest whenever a new article was added to the feed.

Atom requires a unique identifier element for all articles: <id>.
RSS has an *optional* unique identifier element for articles: <guid>.
We now determine article keys as follows:
	- use the unique identifier if present
	- if not, fall back on the old scheme: title+publish time

Most feeds seem to have some form of unique identifier, so this should
fix most—if not all—of the badly behaved feeds.
Add more RSS time formats.
Remove article keys from the cache when deleting a feed.

Otherwise, if the feed is resubscribed then it's old article keys are
still in the cache and none of the articles are added to the
datastore.