performance improvement to the backfilling shortest path algo
updated unit tests to randomly enroll resolutions

gh-20

This is to demonstrate that no matter what order the steps are enrolled,
the chaining will resolve accordingly
finally got rid of the PipeExtension class

gh-20
added factory methods for the PipeOutputPackage

this closes gh-22