This moves population and eviction of the "Persistence Cache" into WriteTransaction.

o Takes advantage of the fact that the exhaustive list of labels is known now, so replaces complex sorting/insert with simple replace.
o Does not address, but works around, the fact that labels are still longs in WriteTransaction. This needs to be addressed in a separate commit.
Fixes manual build
Extend the type system with coercion

To allow collections to be treated as boolean values, this commit
introduces the concept of type coercion to the type system.
Add CoercedPredicate to handle type coercion at runtime
Make patterns as expressions be treated as predicates or collections

Patterns used where an expression of any type is expected will return a
collection of the matching paths. When the pattern is used where a
predicate is expected, the pattern expression will instead return true/false.
Remove PatternPredicate

PatternPredicate(...) does the same thing as NonEmpty(PathExpression(...))
For the sake of less code, remove PatternPredicate.
Ensure indexes are only reported as added if they actually have been created
Merge pull request #1331 from systay/pattern-collections

Pattern collections
Ensure constraint creation is idempotent from Cypher

o Change QueryContext.addIndexRule and createUniquenessConstraint to return IdempotentResult[V] instead of (V, Boolean)
Merge pull request #1343 from boggle/2.0-idempotency

2.0 idempotency
Fixes off-by-1 in BigLabelStoreGenerator
Merge pull request #1339 from jakewins/fix-cache-eviction

This moves population and eviction of the "Persistence Cache" into Write...
Undo 2.0 vs 1.9 compat hack for nullable properties