REST and Core APIs now support listing all stored property keys in the db.
Avoid indexing nodes twice.

Prior to this change it was possible to get two index entries in the case
when you both added the label and set the property in the same transaction,
but created the node in a previous transaction.
This would violate constraints (silently - making the db inconsistent), and
would cause the same node to be returned multiple times from an index lookup.

This is resolved by gathering a Set of updates to apply to the index, rather than a List.
Merge branch 'list-keys' of github.com:jakewins/neo4j

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/api/ReadStatement.java
Make test more stable by avoiding triggering bug in index population.
Enable schema changes on master of HA cluster.

Remove HA concept from kernel; replaced with SchemaChangeGuard.
Replace ReadOnlyStatementOperations with guard on upgrading
transaction for data write or schema write.
Change (default) in-memory index impl to be list based.

This would be useful for exposing issues where duplicate entries are added to an index.
Currently no test cases expose such a case.
License headers.