Accept subtypes for function results, type casts

Patch by Tyler Hobbs; reviewed by Sylvain Lebresne for CASSANDRA-6766
Merge branch 'cassandra-2.0' into cassandra-2.1

Conflicts:
	src/java/org/apache/cassandra/cql3/TypeCast.java
	src/java/org/apache/cassandra/cql3/statements/Selection.java
Merge branch 'cassandra-2.1' into trunk