ScalaCL3: factored CLFunction code generation out of function conversion + added basic task support