Use | for extract, reduce & foreach in 2.0

And WHERE for filter. Also make these the default in documentation.
Dependency Injection 101.

Moving out the Timer as a parameter so we can start to mock the thing out.
Correctly decode property value supplied as a query parameter.

Now uses the same InputFormat mechanism used elsewhere in the REST API.
There is still special handling for JSON lists, that must be converted to native arrays.
It was not practical/safe to reuse all the logic from PropertySettingStrategy;
the ultimate solution will only come when we introduce an explicit type system.
Changed tests to run assertions inside transactions
Merge pull request #917 from chrisleishman/comprehensionsyntax

Use | for extract, reduce & foreach in 2.0
Fixing Cypher docs bug and formatting.
Merge pull request #913 from tinwelint/fix-911

Fixes #911
Merge pull request #921 from apcj/2.0-array-property-values

Correctly decode property value supplied as a query parameter.
Index population failures can be retrieved later

There was confusion about who had the role of saying that an index was in
the FAILED state. Also sometimes the cause for the failure wasn't kept.

Now when an index population fails that index is put in FAILED state and
the schema index provider is responsible for keeping the failure cause as
well as being able to return it later.
Extra work
Move FailureStorage to kernel, document and make it always sync to disk