Updates to support MapReduce clients

Major changes here. Please review carefully! :)

Configuration changes:
1) No longer running Maven Shade on the artifact (we shade on dgpath)
2) No longer depend on Hadoop core (we depend in dgpath)

DataConsumer changes:
3) DataConsumer.consume(...) now takes the ConsumerResult object to update variable values and queue up lines of text for output; This required updates to all existing DataConsumer implementations to comply with the new interface.
4) ConsumerChain object allows for use chaining of DataConsumer implementations
5) DefaultOutput renamed to DefaultConsumer for consistency
6) New class OutputStreamConsumer writes ConsumerResult rows to an OutputStream. This implementation is meant to be chained to existing DataConsumer implementations when writing to an OutputStream is desired. The direct use of OutputStream from existing DataConsumers has been removed.

DefaultDistributor changes:
7) Producer threads given independent exitFlags
8) Main thread will now signal a stop of output once all threads have finished (more stable for small runs)
9) Simplified logic for exiting the output thread in produceOutput
10) Update default userDataOutput to be ChainConsumer with DefaultConsumer and OutputStreamConsumer

ChartExec changes:
10) Initialize exitFlag properly/consistently