CRUNCH-346: Enforce crunch.max.reducers in all cases. Contributed by Jason Gauci.
CRUNCH-349 Avoid NPE when logging NPE
CRUNCH-216 Transpose args in MapsideJoinStrategy

Initial move in transposing the parameters for the
MapsideJoinStrategy to bring it in line with other join
strategies (i.e. the left-side table should be the smaller of
the two tables being joined).

Introduce static factory methods for creating MapsideJoinStrategy
instances that load the left-side table into memory, and deprecate
the existing public constructor to warn users of the future change.
CRUNCH-350: Fix non-transient BloomFilter field in BloomFilterJoinStrategy
CRUNCH-342: Add start and end time info to StageResult for both the job itself
and the pre and post-job hooks.
CRUNCH-346 Don't deep copy immutable writable

Skip deep copying Writables that are primitive, strings, or
immutable derived types.

Also clean up some other issues with deep copying that was not
being done correctly on ByteBuffer and mutable derived types.
CRUNCH-353: When job failure is noticed, MRPipeline kills all its running jobs and exits immediate. This saves slot-time.
CRUNCH-356: Switch from deprecated Closeables.closeQuietly to IOUtils.closeQuietly. Contributed by John Leacox.
CRUNCH-358: Correct the person.avsc schema to be valid. Contributed by Tom White.
CRUNCH-357: Changed AvroMode to no longer an enum, an
 immutable object, exposed means of injecting instance into AvroFileSource,
 and added tests.
CRUNCH-364: Fix failure on mvn dependency:tree
CRUNCH-363: Fix protobufs to work with collection and union wrapper types.
CRUNCH-367: Moving default properties outside of default profile

Signed-off-by: Micah Whitacre <mkwhit@apache.org>
CRUNCH-370: Uplifted Parquet dependency to 1.3.2
Merge branch 'crunch-364'
CRUNCH-351: Impove performance of Shard#shard().
CRUNCH-371 Empty output in AvroPathPerKeyTarget

Correction handle an empty output in AvroPathPerKeyTarget, i.e.
do not attempt to copy/create any output paths.
CRUNCH-366: Flex between Scala 2.9 and 2.10 using profiles. Contributed by Sean Griffin.

Signed-off-by: Josh Wills <jwills@apache.org>
CRUNCH-373 Detach values in MapsideJoin

Use detached values in the materialized map of values in the
MapsideJoinStrategy so that non-primitive values are correctly
handled as separate instances.

Add test derived from provided test case from Rachit Soni.
CRUNCH-368: Introduce TupleWritable.Comparator, which can compare two TupleWritable without deserialization