Updated IO to explicitly implement Closeable

It has a close() throws IOException already, so might as well have it sign that contract.
Merge pull request #522 from swirepe/master

Updated IO to explicitly implement Closeable