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.
"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
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
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
Some minor code style fixes
Merge pull request #830 from tinwelint/2.0-fix-revision

Changes how the kernel version/revision gets generated
Wrap lower level exceptions correctly when checking constraint and indexes. Changed error messages to reflect context.