Consider all possible result types from `CASE`

Rather than finding the leastUpperBound between all the different
expression types, consider them all as equal possibilities.
Merge remote-tracking branch 'upstream/2.0-maint' into 2.1-maint

Conflicts:
	community/cypher/cypher-compiler-2.1/src/test/scala/org/neo4j/cypher/internal/compiler/v2_1/ast/CaseExpressionTest.scala
	community/cypher/cypher/src/test/scala/org/neo4j/cypher/FunctionsAcceptanceTest.scala
Merge remote-tracking branch 'upstream/2.1-maint'