Rather than just using a string for PubDate, we attempt to parse it.
This includes a couple of crazy non-standard time formats that I've seen
in the wild.
Breaking change: Item.PubDate is no longer a string, it is time.Time.
Turns Item.Guid field into a string pointer, so it may properly
be set to nil when applicable. Adjusts remaining code and tests
to reflect this change.