more tests for cloning.
Def#merge! now properly merges Pipelines.
move yield in Def#initialize further down so we can access as many options as possible in Def#new{}.
don't create Pipeline in Def#merge! anymore but push. have to test proper cloning now.