BACKPORT: Fix inconsistent behavior in diffsets on remove/add combination.

Previously, remove+add would result in an item added, while add+remove
would result in no net changes. This fixes this inconsistency, leading to net
no changes in both cases.

This resolves two bugs in property and label changing, where one would remove
and add the same label or property multiple times in the same transaction.

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/impl/api/KernelTransactionImplementation.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/api/StateHandlingStatementOperations.java
	community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/PropertyIT.java

Conflicts resolved by storing changes in record objects immediately rather
than creating those changes from the TxState upon committing the transaction.
Merge pull request #2776 from thobe/2.0-diffset-semantics

BACKPORT: Fix inconsistent behavior in diffsets on remove/add combination.