Function Refactoring wip
1. Merge ImplictCastBuilder into ExpressionTreeMaterializer