CDK-445: Allow hive repos to open any Kite table.

This removes the check in load that enforces a managed provider only
opens managed tables, and a similar check in external. The behavior is
tested in TestManagedExternalHandling.

The only change to the repository classes is to move delete into the
abstract repository and make it detect whether the table is external or
managed and use the correct implementation.

This also fixes update, which dropped property updates.
CDK-265: Filter listed Hive tables that are not readable.

This determines whether a table is readable by checking the type and
getting a descriptor for it. That ensures that the table uses supported
input and output formats and that the schema is available.

When converting from a table to a descriptor, HiveUtils now checks
whether the Hive table is partitioned. If so, a partition strategy
expression is requried. This prevents listing tables that can't be read
because they are not partitioned with Kite. In the future, we can
translate from Hive partition columns to a Kite strategy, but because
there is no way to know how the partition columns are derived, they
should be provided partitioners, which is not yet implemented.
CDK-240: Remove key checks when writes are not bounded.

This adds the Constraints#isUnbounded() method from #100 to check
whether the constraints are unbounded and should be ignored.