Bind type as constants and use invokeVirtual to call read/write methods
Store indy method handle bindings in the classloader

Prevously, the were stored in a "callSites" field in every generated class.
This approach has a couple of benefits:
* No need to generate or remember to set the callsites field when the class
is loaded
* No need to use "volatile" for the callsites field
Remove unused method
Cache compiled PagesHashStrategy classes
Generate calls on Type class instead of on concrete subclasses

The generated code may not be able to reference type classes by name if
they are on a different classloader (e.g., plugins)
Fix broken signature generation for array types

The code wasn't taking into account whether it was dealing with an array type,
which resulted in invalid method signatures being generated.

E.g.,

(IL[Lcom/facebook/presto/spi/block/Block;;)I

instead of

(I[Lcom/facebook/presto/spi/block/Block;)I
Change @SqlType to take a String
Make Cassandra retry policy configurable

This can help to avoid the "not enough replicas" exception.
Update provisio for correct ordering for parallel builds

The graph edges were being created using GAC, but inside the reactor
they need to be created using GA in order to affect the reactor sorting
(correct toposorting). With this change projects can be built in
parallel, correctly.

I have also turned off the dependency checking as the dependencies are
synthesized from looking at the provisioning descriptor and will be
analyzed and deemed extraneous. None of the dependencies will link to
any classes because this project is purely an assembly so what is
required is for the provisioning descriptor to decide.
Fix intellij warning
Change Signature to use strings
Use signature.getName() instead of signature.toString()

Using .toString() for the function name doesn't work if any of the types
includes illegal characters
Remove Type.getInstance()
Add Hive tests for newly added columns

Verify that all of the file formats work correctly if a column is
added to the table after the file is already created.
Injectable TaskExecutionFactory

This might not actually be an enhancement or adding any feature.
But, by allowing TaskExecutionFactory to be injected,
extended PrestoServer can add its specific behaviour
like applying different task.max-memory by some condition.