rename class IO to IO::Handle, tag IO subclasses with base class IO

This conforms mostly with moritz++'s changes to S32::IO, with the exception that IO is now an empty class, not an empty role -- I had trouble creating IO::* classes under a role.

S16 and S32 tests pass here, and panda is fine.  Since Cool.IO now produces IO::Handle, the only code this will break is when people use IO.new() directly.