Replace magic -3 with proper consonstant var
String->long in-memory efficient index for batch importer

for use in cases where the node ids given in the node/relationship input
aren't actual record ids, but arbitrary strings. When using this type of
IdMapping the node ids (strings) are fed to the in-memory index during the
node import stage and sorted, and general prepared for getting
String->long later in other stages that deals with relationships where
they also specify these strings as the start/end node ids.
Merge pull request #3102 from S124568/fix-magic-constant

[master] Replace magic -3 with proper consonstant var
Merge pull request #3110 from tinwelint/2.2-batch-import-external-ids

[2.2] String->long in-memory efficient index for batch importer
Makes clear three transactions application modes

Internal, external and recovery. This means that we no longer "piggy back"
on recovery mode for external transactions being applied in HA.

This distinction exposed a problem where we evicted nodes unnecessarily
when deleting relationships, even in internal application mode. Another
problem with patching relationship chain caches was exposed and fixed.

This commit also removes the global "recovered status" from stores since
that is no longer applicable to 2.2 where many transactions can apply
commits at the same time. This state has now moved to each transaction
instead.