add many tests
add initial implementation
add more comments around what paramters to join do
null is treated the same as any other string
Makefile: less debug output
don't send objects without the join key to join

it has no way of distinguishing between objects without the join key and
objects with an empty join key, so it joins all of them together
clarify comment on piping
rely on the caller to sort the streams
remove unused log lines
test: DRY
test: style consistency
test: sort pairs consistently
test: add test for string undefined
test: clearer pair sorting
README: note that output is unordered
test: more edge cases
test: extra #
value to join on must be a primitive
verify that all items in the stream are objects
test: generate additonal error tests