Add support for variable arity functions
Add support for parametric types
Add ARRAY type

* Add ARRAY as a parametric type
* Add subscript operator as a parametric function that operates on any ARRAY type
* Add new syntax for ARRAY constructor (i.e. ARRAY[1,2,3])
Implement CARDINALITY
Add CONTAINS function for arrays
Add map type

* Add subscript operator for maps
* Add map as a new parametric type
Add documentation and release notes for arrays and maps
Add tests for Signature
Make TypeParameter a top-level class
Refactor specialize to take bound type parameters
Rename IdentityCastParametricFunction to IdentityCast
Move TypeSignature to the SPI
Rename parametricScalar() to function()
Add support for type parameters that must be orderable
Rewrite max_by as a parametric function
Fix approximate count double test

Use DoubleType instead of BigintType
Refactor aggregation tests

Change test framework to use the string name of the aggregation, and its
parameters to do the lookup, rather than relying on an
InternalAggregationFunction being provided
Fix handling of void stack type in compiler
Rewrite COUNT as a parametric aggregation

This allows it to work with any type. Even the unknown type.
Remove duplicate dependency in presto-hive