Use same property equality logic in tx-state.

When looking up indexed nodes from the transaction state, we need to do
the same type coercions of property values that we do when looking up
nodes from the committed indexes. This is done by using the equality
defined in DefinedProperty.

Along with this the coercions made in DefinedProperty have been made
more explicit, and comparisons between integral numbers and floating
point numbers have been made more strict, so that only exact comparison
is ever made.
Reduce probability of false failure of pageFaultForRead* test

The problem is that it can race with the optimistic "self-healing" of the cache
and therefor have a highly variable run time.

It would be better to stabilise the running time, but my attempts at doing that
have thus far only led to subtly breaking other things.
So this needs further investigation. In the mean time, this will break fewer
pull request builds.
Merge pull request #3104 from thobe/2.1-tx-lookup-type-coercion

[2.1] Ensure that we get the same index hits when looking up from tx state as when we look up from the committed index
Merge remote-tracking branch 'upstream/2.1-maint'

Conflicts:
	community/kernel/src/main/java/org/neo4j/kernel/impl/api/StateHandlingStatementOperations.java
	community/kernel/src/main/java/org/neo4j/kernel/impl/api/state/TxStateImpl.java
Merge pull request #3143 from davidegrohmann/merge-2.1-into-master

Merge 2.1 into master
Merge pull request #3136 from chrisvest/2.2-reduce-test-flakiness

[2.2] Reduce probability of false failure of pageFaultForRead* test
Update planning of optional match in Ronja

Before this change, planning of OPTIONAL MATCH
was done as if order between these clauses was
not important. This change respects the order
of the clauses, and simplifies which operators
are used in solving them.
Change how greedy the greedy planner is

Before this change, for each step taken in the planning process,
a single best plan would be picked, and added to the plan table.
This would prune out any plans covered by the new best plan.
After this change, Ronja picks the best plan per set of covered ids.
This broadens the search space some, and prepares the planner
to be able to find more effective plans for queries with cycles.
Hash join support for joining on multiple keys.