Rename Signal.IO to IO
Disposable doesn't need -XExistentialQuantification anymore
Set up a bunch of convenient re-exports
Generalize Subscriber, Disposable, and Signal to any MonadIO
Change 'do' operators to always run in IO

This is in keeping with the idea that 'do' always indicates side effects. Actions can still be embedded in a monad transformer by hand.