Adds the concept of constraint indexes.

Indexes can be marked as constraint indexes (owned by a constraints), and the owning constraint gets stored in the IndexRule.

On startup, constraint indexes that don't have an owning constraint gets removed.