Fixup Channel specs
Fix false positive tests

I’m not proud of depending on private implementation details.
Ensure a `#empty?` is always true for unbuffered channels
Fix Channel to follow spec
Simplify Operation, Push, and Pop
Have any sub-thread's failure fail the main thread
Refactor tests to use a sleeper function
Select Statements!

In desperate need of cleanup. But it’s almost all here!
Progress!

Just needs some cleanup
Drop 1.8.7 support
Fix issue with 1.9.3
Support 1.9.3
Separate out Select helper methods
Cleanup
Cleanup SelectStatement
Expect size constraints
Timeout specs after 5 seconds
Try all operations to complete this one
Remove other ruby implementations

They were having problems with my testing procedure. I’ve written tests
to never give a false positive by attempting to synchronize threads
with `sleeper`. Rubinius in particular has a problem with this.
Simplify `#remove_operation`