Clean up feeds and improve test coverage

This is a fairly hefty PR to start improving our test coverage in our feeds as well as ensure errors are properly being handled.

There are quite a few fixtures which I created, hopefully what I can now do is setup fixturator to properly generate these but they will be in a separate PR.
Worth adding a test to check `EmptyFeed` thrown for empty feeds?