Modify SchemaLock to be only one class.

o Resolves issue where multiple transactions could hold a schema write lock
o Improves index lookup performance by one order of magnitude
o Refactors uniqueness constraint code to not deadlock when constraint index is
  created.
o Removes some of the uniqueness index methods that were leaking through
  the kernel API.
o Drop and list uniqueness indexes are still exposed, since the constraint
  index cleanup job uses them. Added appropriate TODOs for pulling that job
  into the kernel, rather than keeping it on the outside.