Test rule for muting System.out/err and j.u.logging in tests (until failure happens)

Very useful in e.g. server tests which are very chatty to console. Many
tests are now muted with this rule.

There are still 10 lines or so being printed, but it might break my back
to hunt for them. Given the time spent it's a pretty good coverage of muting.
Set new version in master.
Merge pull request #828 from tinwelint/2.0-muted-server-tests

Test rule for muting System.out/err and j.u.logging in tests
Changes how the kernel version/revision gets generated

The problem:
Kernel version is gotten from 'git describe' which looks at the most
recent tag reachable from HEAD. If HEAD _is_ that commit then it'll be a
clean e.g. '1.9.RC2' version, otherwise it'll add
'-<nr-of-commits-ahead>-<short-commit-hash>'. They way the branches are
set up currently yields that tags made in master will be merged into 2.0.
Therefore the latest tag (i.e. release) of either 1.9 or 2.0 will be
chosen by 'git describe' when describing 2.0.

The solution proposed here:
Don't use 'git describe' since it doesn't suite our branch strategy.
Or rather, still get the 'dirty' part from it (i.e. whether there are
local changes or not when doing the build).
Instead use the version found in the pom, along with current branch and
commit hash (if the version is a SNAPSHOT version). Examples:

  2.0.0-M02
  2.0-SNAPSHOT-2.0-58f0e945df96d9a71184e4a0bbcdaf4e42271770-dirty
  2.0-SNAPSHOT-mylocalbranch-58f0e945df96d9a71184e4a0bbcdaf4e42271770

Caveat for not showing <branch>-<commit-hash> if not a SNAPSHOT is of
course that the version can be faked, but that goes for the previous
solution as well of course where one could alter tags before building.
Adhere to naming conventions in StatementContext.

The naming convention introduced is to have the most prominent entity that the method deals with named first in the method name.
The rationale behind this is to group the methods by name, and to facilitate IDE "tab completion".

Adds documentation explaining this naming scheme to the StatementContext interface.
Introduce an abstraction around the property concept.

Add an object that groups property key with property value.

This allows us to do all the type conversions (both incoming and outgoing) in one and only one place, and lets us know the exact type of a property "on the inside" without having to resort to instanceof checks.

The Property object is suitable for storing in the cache layer.
It deals with all the necessary defensive copying, conversion from boxed arrays to primitive arrays, and is optimized for minimum object overhead.
Use the Property abstraction in the implementation of get/set property.

On the top of the stack there are methods that delegate the old GetPropertyValue/SetPropertyValue methods to the new GetProperty/SetProperty methods.
At the bottom of the stack, only the new GetProperty/SetProperty methods are implemented. These delegate to the old NodeManager counterparts though.
Remove the {Set/Get}PropertyValue methods.

o Their usage and implementation are replaced by {Set/Get}Property using the Property abstraction.
o Change RemoveProperty to return a Property object.
o Remove the PropertyConversion layer, since there are no method calls to convert between anymore.
Makes sure no traces of the index config is left behind if acquiring an
index resulted in its configuration to be created, but with an invalid
configuration.
"can not" => "cannot"
Ensure transaction closed on execution error.

Scope of try block was too small to catch exceptions thrown
  during schema modification operations.
Remove default messages from StatusCode.

Now errors require an exception, and the exception should include a message.
Avoid low-value duplicate text in messages sent to the user.
Add new mapping from CouldNotCreateConstraintException to COULD_NOT_CREATE_CONSTRAINT.
Change assumptions about setting property with bad value - this is user-recoverable.
Fix warnings reported by PMD.
Fixes docs build
Make Cypher execution results closable

o Introduces ResourceIterable/ResourceIterator
o Makes ExecutionResult implement ResourceIterable
Document keep alive and include new timeout in response

o Report new expire time after refreshing transaction timeout
o Due to streaming of results the new expiry time cannot be set in the header
o Updates documentation
o Ensure rollbackSuspended is called with a minimum timeout of 500 ms
o Adds sleep(3000) to two tests due to textual timestamp formats only having seconds resolution
o Use RFC1123 format similar to established HTTP Expires header
Merge pull request #833 from systay/closable-execution-result

Make Cypher execution results closable
Fix warnings reported by PMD.
Merge pull request #824 from boggle/2.0-timeout-rest

Document keep alive and include new timeout in response headers