Generify TupleDomain

This is a precursor to splitting the *Handle hierarchy so that connectors don't need to be aware of connector ids
Use "dual" for dual connector id

Some tests were incorrectly using MetadataManager.INTERNAL_CONNECTOR_ID
Split Handle hierarchy

There are now two parallel Handle hierarchies: global vs connector-specific. SPI operates in terms of the connector-specific hierarchy. The engine (analyzer, planner), operates in terms of the global hierarchy. Metadata/SplitManager/etc take care of wrapping and unwrapping calls and routing to the appropriate connector based on the connectorId embedded in the global handles.
Unify handling of information schema metadata and other internal connectors

They are all now treated as internal connectors. ConnectorManager is now responsible
for installing the information schema metadata when appropriate
Remove need for canHandle(...) in ConnectorMetadata
Register dual and system via ConnectorManager

LocalQueryRunner was installing the metadata, split manager and
data stream provider manually instead of relying on the existing
SystemConnector and DualConnectors
Remove need for canHandle(...) in SplitManager and DataStreamProvider
Remove need for canHandle(...) in RecordSinkProvider
Remove need for canHandle(...) in IndexManager