Don't require Eq and Show for signal values
Add some comments to the Scheduler implementation
Refactor disposables like cray
Remove OnEvent type synonym
Explain acquireSubscriber a little bit more
Export addDisposable, removeDisposable, and dispose
Remove completely broken ArrowLoop instance
Fix compilation
Remove broken >> implementation

It should behave like -sequenceMany:, not -sequenceNext:.
Add 'empty' function, identical to 'mempty'
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.
hlint fixes
Merge branch 'better-patterns'