rewrote the runtime generation of classes to only store some metadata

For each generated class (ScoobiWritable, TaggedValue, TaggedKey,...) we first
store the necessary metadata (WireFormat, Grouping,...) in the Distributed cache
then create a method to retrieve the path of that metadata.
removed an unnecessary setup call in the reducer code
using the proper task attempt context to close a RecordWriter. fixes #184
Be on the correct Filesystem for output to S3.

#169 change to move rather than copy to output breaks Scoobi on AWS
Elastic MapReduce for a standard usecase where HDFS is the temporary
filesystem and output to S3.

Making the output directories on the right FileSystem in `MapReduceJob`
is a fix. The foreign test in `FileSystems.moveTo` covers matters until
#76 is addressed.
Merge remote-tracking branch 'origin/master' into 0.7.0-SNAPSHOT
fixed #185 by integrating the pull request and fixing the NPE occuring in the local mode
Merge remote-tracking branch 'origin/master' into 0.7.0-SNAPSHOT
Merge branch '0.7.0-SNAPSHOT' of github.com:NICTA/scoobi into 0.7.0-SNAPSHOT
scalaz.Ordering not Int for Grouping#groupCompare
Grouping combinators