IO exists!

Ready for review!

Basic framework for the IO subpackage. Still need to add docstrings.
Can you change this to `cls=None` (here and elsewhere in the code)? I think it'll be clearer for readers and remove duplicate code for handling `*cls`.