Implement mapreduce.reduce.shuffle.symlink-mapoutputs option.

When running Hadoop over a networked file system, such as NFS or Lustre,
there is no need to send map output data from mappers to reducers.  The
data is already stored in a network location that is available.  So instead
create a symlink to the mapoutput data and have reducers only read/load the
appropriate data they require.

This patch works with multiple reducers, this is generally speaking a
proof of concept patch.

See RESULTS.txt file for performance results and comments.

See TODO.txt file for code issues.
Merge remote branch 'origin/HADOOP9109_symlinkshuffle_manyreducer' into HADOOP9109_symlinkshuffle_manyreducer