Implemented TVCollection (partial) #87

There are a few things that are missing:

- Possible edge cases I might of not tested for.
- Known edge cases I haven't implemented yet.
- The remove_episodes function (not used anywhere until later).

So there's nothing stopping me from integrating the new collection
interface with the existing codebase.