Add Pipeline.define method for setting up pipelines
Allow replacement of compilers
Add TreeMerge class for merging file trees
Add FileCache that keeps results between runs