Implement table functions.

The structure (number of columns) might depend on the input arguments that are provided as literals (see `JdbcTest.multiplicationTable`)

This PR moves [Public Morozov](http://en.wikipedia.org/wiki/Pavlik_Morozov) out of `RexImpTable`, so `ScalarFunctionImpl` and `TableFunctionImpl` can properly implement the required call via linq4j (see `ImplementableFunction`).

Not included in current pull request:
 - Table functions that take cursor parameters. It fails with `CannotPlanException`, see `JdbcTest.testTableFunctionCursorInputs`.
 - Costing model (i.e. the number of rows returned by a function, io cost, cpu cost)
 - Collation model
 - Table function based on a method that returns `Enumerable`. 
 - Configurable null policy for user-defined functions (see `ScalarFunctionImpl.createImplementor`)