GROOVY-5662: (primopts) add type transformation for mixed type binary operations
to finally remove $getCallSite we need a dummy writer that gets the calls

Signed-off-by: Jochen Theodorou <blackdrag@gmx.org>
add indy frontend and bytecode interface backend stub for indy based property handling
make constructor calls go through indy as well
make IndyCallSiteWriter more pluggable
This commit adds support for invoking constructors through indy. To enable this an internal class MetaConstructor has been added to MetaClassImpl (for internal use only hopefully), also MetaClassImpl got a new method retrieveConstructor used only by indy. The bootstraping method has been unified for all types of calls, so that constructor invocations as well as normal method calls can go through the same bootstrapper. In InvokeDynamicWriter a null adapter was used to show an constrcutor path to be easily be able to reuse the InvocationWriter infrastructor. Also a "callsite name" was introduced, since the verifier does not allow <init> method names in invokedynamic based invocations. CachedConstructor got an getCachedClass to be able to get to the direct call information to enable indy to unreflect. To support the bean constructor with properties a method setBeanProperties has been added to IndyInterface as a handle callback.
initial implementation for get property operation on existing properties.
replace call site shortcut by InvocationWriter code to allow for example indy use a dummy writer for the call site
start handling spread expressions inmethod calls
Added check for /usr/libexec/java_home

This is the preferred way of choosing a JVM on OS X

http://developer.apple.com/library/mac/#qa/qa1170/_index.html
Refactor InvocaionWriter a bit for more easy subclassing, transport spread information to indy backend, implement non caching spread logic in indy
make assignment to array with operator to be more callsite agnostic
correct spread flag value
GROOVY-5767: Improve DSL type checking
   * wrap type checking context in a single class
   * move inner classes to upper level
   * remove support for TypeCheckerPlugin from StaticTypeCheckingVisitor (tbd: remove the plugin class too)
GROOVY-5767: Improve DSL type checking
   * make methods protected so that subclasses may override behaviour more easily
   * add methods to easily provide property/attribute resolvers
refactor CallInfo into Selector and move method selection code into Selector
correct selection base for static calls/properties and add shortvut for generics property getter
add generic MetaProperty path as well as path for Fields
don't spread if for meta class path
add generic meta class property get path