Merge pull request #5 from seadowg/master

Switch to push based implementation
Merge two streams.
Another merge test.

This time, testing +1/-1. Neat.
Adding #on_value.

This allows you to have a callback when some kind of value
comes down the stream.
Actually yield the event.

I forgot to properly yield the event. Oops
Add Inject#on_value.

This is useful too. Duck typing.
fix warning re: ambiguous argument
Use varargs for constuctor.

This way is much nicer.

.merge is basically an alias for .new at this
point, but I like the semantics. If I have two
things, I use varargs in the constructor, and
if I have two streams, I use merge to merge
the two.
Add #map_stream.

This allows you to do this common case:

    .map do |event|
      case event
      when :+
        1
      when :-
        -1
      else
        0
      end
    end

This turns into:

    .map_stream(:+ => 1, :- => -1, :default => 0)
Update README with more stuff
Fix install instructions.
One more install fix. whoops
Add #select

Woo. More of Enumerable.
Allow for more than one callback to be registered to a Stream