Fix https://github.com/julianhyde/optiq/issues/180, "Common base class for TableFunction, ScalarFunction".

Add interface Function, which becomes base class of TableMacro (previously TableFunction) and ScalarFunction; rename Parameter to FunctionParameter; rename Schema methods getTableFunctions to getFunctions, and getTableFunctionNames to getFunctionNames; rename TableFunctionEntry to FunctionEntry.