WL#1300: Take into account complexity of User function execution

Affects: Server-7.1   —   Status: Un-Assigned   —   Priority: High

User functions itself might be of different "cost", this especially applies 
to SQL user functions, however generic UDF may also requre Disk or Network IO
for their execution.

Few items we might do about it:

 - Estimate cost for "SQL" User Functions executions
 - Allow to specify cost for Binary UDFs to fine tune optimizer behavior.
 - Optimize Where clause processing taking cost in account. If we have 
    A=UDF1() and/or B=UDF2()  in where clause, the order of processing shall
    take cost of UDF into account
 - Allow to specify if UDF is deterministic or not, cache expensive UDF
   values for wuery execution in JOIN.

This item is based on one customer concern, who had pretty expensive UDF, and
found it is executed over and over for the same values in join execution.