Create PipeSource/Sink instead of changing Output class
We need to revert the design currently available on this package so that it respects the old beat.core design. Instead of overwriting the Input/Output classes, we need to create both a PipeSource and a PipeSink classes that can be used to input and output data for the Input/Output classes respectively.