Add more tests to ensure the interaction between TransactionEventHandlers and indexes

This verifies that github issues #3590, #2851, #2270 and #2714 are fixed in 2.2.
Add additional tests for X-Forwarded-Host

Against Cypher REST response, and slash redirects
Fixed merge
Removed the integration tests pertaining to the correct use of X-Forward-* when redirecting from URIs that don't end in slash to ones that do*.

This is because there is some subtle interaction between Jetty and Jersey that screws this up. We've been through the Jetty code trying to see where this happens, but it's high cost for low value. Therefore when you don't correctly specify (say) /db/mabage/ and instead specify /db/manage then you will likely get incorrect URIs in the 302 response. the solution is not to use the wrong URI.

* This is a dumb decision by Jetty/Jersey. It is clear that http://example.com/foo/ and http://example.com/foo are not the same URI. Meh.
Stop pointing to the installer script. Update download links.
Remove configuration change restarts

This feature was completely broken, and no tests were concerned with its well-being.
If you asked the ConfigurationBean to apply a new configuration, the server would attempt a partial restart and fail half-way through, locking up the whole database until the process as a whole was restarted.
It's a high-complexity, low-value feature, that was easy to forget about, and the partial restarts were hard to reason about, and I've never heard of anyone using it.
If you were using it, the new way of applying new configurations is to just restart the whole database.
If there are no active transactions running that we need to wait for, then the turn-around time for a clean restart is pretty short anyway.

This commit also fixes a bug in the deprecated `Config.setProperty()` method that, if used, would delete all properties instead of adding the given one.
Furthermore, the ConfigurationBean will not refuse writes to the attributes that it has always claimed were read-only. Which is all of them.
A new internal configuration has also been added, called `transaction_start_timeout`, which controls how long we will wait for the database to become available when starting a new transaction.
Make default CostEvaluator work with arbitrary numeric types
Serialize identifiers in JSON representation of the Cypher execution plan description

- adding new ExtendedPlanDescription interface with the new needed API and compatibility wrapper for all compilers
Fix typo in package name
Reenable a test

- better comments on broken tests
- delete a useless ingored test
Added more logging in HA

Removed a flaky test which is not applicable after we've introduced UpdatePuller
Added logging to help locate where all instances in a cluster see others as available.
Updated documentation around performance tuning and execution plans
Further tweaks to tuning and execution plan docs.
Make the PageCache the only way to map files into memory.
Merge pull request #3605 from systay/tuning-docs

Updated documentation around performance tuning and execution plans
Merge pull request #3617 from davidegrohmann/2.2-reenable-test

Reenable a test
Merge pull request #3616 from davidegrohmann/2.2-add-ids-to-json-plan-desc

Serialize identifiers in JSON representation of the Cypher execution plan description
Merge pull request #3618 from chrisvest/2.2-no-native-mmap

Make the PageCache the only way to map files into memory.
Passes id iterable as ResourceIterable into IdMapper

since that needs to be closed after reading.
Correct a bit mask for collision marker for encoded strings

for the id mapper that encodes strings into longs in the batch importer.
This faulty bitmask was discovered when importing nodes with very long
string ids, therefore such a randomized test was added as well.