Refactored recovery of schema indexing

* makes index recovery contract checking compliant
* removes all usages of IndexRule in the index cake
* introduces IndexDescriptor getDescriptor() into the index cake
* cleaned up IndexingService
* removed InternalIndexState#NON_EXISTENT because there's yet no logical
  difference from POPULATING.