Adding OutputWriter interface; incorporating into ChainConsumer; Removing unused flag code from DefaultDistributor

The changes can be summarized as follows:
1) ConsumerResult no longer holds rowResults
2) New interface OutputWriter separates output writing from the updating of datasets (left for DataConsumer); Note that OutputWriter is still handling formatting of output by default (but see num 7 below)
3) OutputWriter management code added to ChainConsumer
4) DefaultWriter implementation of OutputWriter replaces DefaultConsumer
5) OutputStreamWriter class (now obsolete) has been removed
6) Old (unused) flag management code removed from DefaultDistributor
7) ConsumerResult has new function "getPIpeDelimited" to get pipe-delimited format of current result as a String. Since this is returned by the function and no longer stockpiled in getRowResults, it should not cause memory issues.