Support map-only streaming jobs

If the number of reducers is 0, Hadoop won't even run the reduce phase
of the job.  So in that case, the mapper should write output directly
instead of serializing the key/value.
Don't mangle strings when outputting only one column

Previously, yielding only a single value instead of a tuple would result
in the string being interpreted as a tuple of single characters.