Adding configurable input stage to pipeline.

Added a configurable input stage to the pipeline. By default, this stage accepts aligned reads. However, the goal of this stage is to allow aligners to be run inside of Spark map-reduce. If the aligner can do streaming I/O, we can go from alignment to pre-processing without touching disk.

This work was split off of the "snap" branch; soon, we will have SNAP incorporated into the pipeline.