add tests to assert user filters are run before coercion filter.
remove Definition#skipable_nil_value? in favour of #skipable_emtpy_value?.
setup filter options in ::property.
tests for initialize with block.
it almost works.
Definition is no Hash anymore to avoid problems with new {..}.
unify how we pass blocks.
we don't have Definition#default anymore.
no size.
don't test size anymore.
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.
save options in Def@options and then wrap with Value in @runtime_options for faster evaluation.
no need for evaluate anymore as we have the unwrapped option.
move all common setup code to Def#setup!.