Fix Hive connector partition lookup

Use Slice.toStringUtf8() instead of .toString(). This fixes an issue where
all queries to the Hive connector that used a WHERE clause on a string
partition column would return no results.
Fix incorrect output from SHOW SCHEMAS

There was a bug in the way MetadataManager keeps track and resolves information schema
connector registrations that caused the wrong ConnectorMetadata to be picked. As a result,
SHOW SCHEMAS would display schemas from another catalog.
Reuse pre computed partitionDomainSummary
Fix issue with missing column types in explain
Refactor and remove redundant code in BootstrapFunctionBinder
Record only CallSite objects in function binding map

There's no need to hold on to the whole FunctionBinding object. This will
amelioriate a memory leak that happens because bindings are not removed
from that map
Fix memory leak in BootstrapFunctionBinder

Callsites were being registered in a global BootstrapFunctionBinder but were never removed.

In this implementation, we create one BootrapFunctionBinder per dynamic classloader and load
an "isolated" version of the Bootstrap class used by invokedynamic calls. When the classloader
is garbage-collected (i.e., the compiled code is no longer needed), the callsite registrations
are collected, too.
Update window.rst

remove duplicate "in"
Use ValuesNode instead of dual table for planning queries w/o FROM
Fix warnings in BlockEncodingManager
Remove unnecessary methods from BlockBuilder
Clean up new Type and Block SPIs

Add JavaDocs
Rename methods and parameter names
Cleanup IDE warnings

Add missing @Override annotations
Replace uses of StringBuffer with StringBuilder
Make utility classes final
Rename NullType to UnknownType and move to presto-main
Require Type implementations to have a getInstance method
Replace manual slice copy code with Slices.copyOf
Rename RecordCursor.getString to getSlice and make it return Slice
Add session to ConnectorMetadata calls

This is an alternate implementation of pull request #1159  The main difference
being this code add Session to each metadata function not involving a handle,
instead of making ConnectorMetadata a stateful instance. The session is not
passed to handle based methods and instead any connector needing session data
would need to store the session in the handles. This is consistent with the
handle design of other methods.
Add session to HiveTableHandle and HiveSplit
Rename HiveRecordCursor timeZone field to hiveStorageTimeZone