Handle failed feeds better

Previously, a failed feed could never come up for check again. It
would always be scheduled 60 minutes in the future from when
feeds.active() was ran.

Now, pin the 60 minutes to whenever the feed failed.
Item: Don't break Item.delay when Item.timestamp is None

Return timedelta(seconds=0) when timestamp is None. Rare, but it
happens.
Sort keys when writing JSON
Add feed metainfo to JSON
Don't sleep if going through initial check
Only print new items when not in initial check
Use initial check when limiting to self.initial_limit
Add feed item info