Resolve uniqueness confusion

This PR separates more cleanly the parsing of the feed and the notification of new channels/items in that feed.
- The _current_ items and channels are stored in the Items and Channels fields of the Feed type.
- The _new_ items are passed to the original listener functions, these used to get _all_ the items/channels ever found since the inception of the feed.

I kept the interface the same only the behaviour changed.

What I haven't solved is the configurability of the comparison function `Key()`. But I deemed that a lower priority, if someone has suggestions I'd love to hear them.