Fixes compilation error
Disallow dropping constraint indexes from the public APIs.

Also disallow creating an explicit index where a constraint index already exists and vice versa.

When listing indexes in the public API(s), the constraint indexes are included,
since they can be used for queries just like other indexes
[implemented through the Beans API - other APIs use this still].

This is done by treating constraint indexes as different from other indexes in the Kernel API,
and by enforcing non-overlap in the DataIntegrityValidatingStatementContext.
Code cleanup (improves static code analysis results)
CleanupService doesn't register resources if inside transaction

Methods that returned ResourceIterator still does so, but the actual
returned iterator may not be registered for cleanup if the call was made when
inside a transaction. This is because the transaction will close statement
contexts (i.e. the resource) so it would be unnecessary strain on CleanupService.
Minor work around listing of constraints and awaitIndexesOnline

o Adds SchemaAcceptanceTest for getConstraints()
o Adds Schema.awaitIndexesOnline
o Adds ConstraintType.filter() in favor of exposing Predicate in our
public API
Adds support for listing constraints to shell
Adds schema state invalidation when creating or dropping constraints

o Adds kernel-level test for all schema state invalidating operations
o Adds SchmemaIndexTestHelper.awaitIndexOnline
o Adds state invalidation on dropConstraint in StateHandlingTxContext
Makes Cypher use n.prop! in index selection

o Makes StartPointChoosingBuilder pick up "n.prop!"
o Introduces HasOptionalDefault to decouple Nullable from DefaultTrue/False parser mix ins
Merge branch '2.0-schema-state-invalidation' into 2.0
Merge remote-tracking branch 'tinwelint/2.0-no-cleanup-in-tx' into 2.0
Merge remote-tracking branch 'origin/2.0-list-constraints' into 2.0
Makes a graph database give a helpful message when it's been shutdown

 * Removed throws IOException from NeoStoreXaDataSource constructor, because it's not true
 * Made ThreadToStatementContextBridge implement Lifecycle so it's told when to shutdown
 * Kernel keeps track of shutdown state and throws appropriate exception when used after