Make sure UNION queries have columns

Fixes problem where text output from a UNION query always seemed to be empty.
Merge pull request #825 from boggle/2.0-remove-alt-with

Removes alternative WITH syntax from Cypher ('=== exprs... ===')
Merge pull request #792 from boggle/2.0-merge-docs

Update Cypher manual for MERGE and CASE
Merge pull request #826 from systay/union-output

Make sure UNION queries have columns
Add links to constraint APIs
Throw better exception when cypher fails to create constraint.

Change ExecutionEngine method signatures to explicitly
  throw CypherException instead of SyntaxException.
Avoid throwing KernelExceptions from public APIs.
Add new SchemaModificationException as supertype for several related exceptions.
Try to match Cypher syntax in exception messages.

Restructure kernel exceptions to express constraint violation semantics.
Rename DataIntegrityKernelException to SchemaKernelException.
Break out subclasses of SchemaKernelException into files in their own package.
Move all KernelException classes into dedicated exceptions package.

Introduce userMessage responsibility to KernelException.
KeyNameLookup is safe subset of KeyReadOperations suitable for preparing user messages.
Fix PMD warnings.
Document keep alive and include new timeout in response headers

o Update docs
o Ensure rollbackSuspended is called with a minimum timeout of 500 ms
o Report new timeout after updating it
o Use RFC1123 format similar to established HTTP Expires header