Replace IndexProxy.{update|recover} with IndexProxy.newUpdater(mode)

o Temporarily @Ignore RuleUpdateFilteringIndexProxyTest
Split out the concurrent map from IndexingService

o Abstracts how that map is updated and also what mappings are tracked internally
o This prepares for having multiple mappings instead of only being able to lookup by long
Make IndexingService compute which indexes need to see which updates instead of broadcasting all updates to all indexes

o Removes RuleUpdateFilerIndexProxy and ServiceStatusUpdatingIndexProxy from the IndexProxy cake
Make IndexAccessor and IndexPopulator use IndexUpdater

o Made IndexPopulationJob enqueue updates individually
Make Index{Rule|Descriptor} store multiple or none property key ids

o Introduce a FAILED IndexProxy for each schema rule
o Make label scan rules not show up in core API
o @Ignore IndexRecoveryIT for now
Made IndexDescriptor part of IndexConfiguration
Integrate processing of label updates into IndexingService

o Add IndexUpdater.process(UpdateMode, NodeLabelUpdate)
Introduce IndexStatement to tie scope of IndexReaders to containing statement
Enable SchemaIndexProviders to register themselves as label indexers

o Rename SchemaIndexProvider.Descriptor to top-level IndexProviderDescriptor
o Changes DefaultSchemaIndexProviderMap to be a real map and replaced uses of getDefault*
   with IndexProviderDescriptor constants
o New naming scheme for in-memory package: {Label|Property}IndexProvider
Add InMemoryLabelIndexProvider with working populator

o Adds LabelIndexPopulatorCompatibility
Implement InMemoryLabelIndexAccessor