annotate f as Function for map, map!, mapreduce, reduce
change the annotation of f from Function to Union(Function,DataType)
Introduce abstract type Callable
Merge pull request #3480 from lindahua/annot_funs

Annotate function arguments with Union(Function,DataType)