Escaped identifiers in the RETURN clause are kept as the user entered them

Given a RETURN clause that looks like:
    RETURN `escaped id`

The old behaviour was to name the column "escaped id". The new behaviour is
to use "`escaped id`".
Add KeyNameLookupProvider to give easy read-only access to looking up token names
Hooking TokenNameLookup (formerly: KeyNameLookup) into IndexingService

o Constructed in IAGD and passed on via NeoStoreXaDataSource
o Also made available from Kernel because that is where it should live eventually
o Renaming methods to match the Kernel API naming scheme
Make IndexPopulationJob log label names and property key names instead of ids.

o Introduce LogMode utility
o Extract TokenNameLookupProvider interface from implementation
Ensure population jobs do not fail to log when token name lookup is unavailable during shutdown or recovery

o Fix LuceneIndexRecoveryIT
Merge branch '2.0-token-name-logging' of https://github.com/boggle/neo4j into boggle-2.0-token-name-logging
Add cause to logged error.