Added "brand new" callsite implementations for use by the newer dynamic runtime code
Eliminated code generation for dynamic event += -= in playscript classes
Beginning work on new low-overhead dynamic runtime call sites (work in progress)
Enabled with /newdynamic flag
Added PSBinaryOperation class for DynamicRuntime, renamed some classes
Major dynamic runtime optimizations.

Use lighter weight call sites for get/set index/member, static method calls used for conversions and binary operations
Merge branch 'master' into ps-dynamic-runtime

Conflicts:
	mcs/class/PlayScript.Dynamic_aot/PlayScript.Dynamic_aot-monotouch.csproj
	mcs/class/PlayScript.Dynamic_aot/PlayScript.Dynamic_aot-net_4_0.csproj
Updated PSBinaryOperation to use non-overloaded methods since overloading is not reliable in all cases
Put a null this check in PSGetMember
Added EmptyCast.RemoveDynamic() to clean up a lot of the dynamic casts
Switched GetIndex to use Dynamic.ConvertValue
Enabled all optimizations by default, can be disabled with /newdynamic-
Merge branch 'master' into ps-dynamic-runtime

Conflicts:
	mcs/class/PlayScript.Dynamic_aot/PlayScript.Dynamic_aot-net_4_0.csproj
	mcs/mcs/mcs.csproj
Added better stats tracking of dynamic operations
Added PSUnaryOperation and used static invokes for it
Refactored dynamic binary expressions, created DynamicBinaryExpression and hid all the work in there
First attempt at a light weight callsite for InvokeMember
Added explicit type arguments for PSMemberInvoke
Simplified dynamic convert to not use call sites at all
Added more PS source file compiler guards around new optimizations, fixed build issues
Fixes for Array and Object initializers
Renamed AsObject to AsExpandoObject
Removed code that was doing type inference: always treat AsObjectInitializers as type ExpandoObject and AsArrayInitializers as Array
Made Expando initialization use ElementAccessor (expando[name] = value)