DRILL-2406: part 2 - Allow interpreted expression evaluation at planning time.
Changes needed after rebase to expose function determinism to calcite appropriately.
Address Jacques review comments.
Address chris' review comments.
Make things work now that BufferManager is AutoClosable.
Fixes tests that were creating plan fragments directly to create their own query start time,
as this information is now passed along from QueryContext during standard query initialization
(this enables the query start time and timezone to be available to planning time expression
evaluation).
Fix docs in BufferManger.
Update UDF interface to track determinism rather than randomness.