Updated IO to explicitly implement Closeable

It has a close() throws IOException already, so might as well have it sign that contract.