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.