Removed code from the compiler that prevents the creation of use-defined structs
Ensure that user-defined value types have no mutable members
Implementation of members required for user-defined structs to have the desired semantics
Support lifted conversion operators on user-defined types.
Clone value types on non-compound assignments
Compound assignment of mutable value types
Clone value types in statements that require it
Fixed multidimensional arrays with mutable value types
Copy value types in array initializers
Tests to ensure value types are copied during method invocations
Fix value types in object initializers
Clone value types during boxing, unboxing and dynamic conversions
Rename TypeScriptSemantics.ValueType to MutableValueType + improve tests
Clone readonly fields when used as invocation targets
Support assignment to `this' in value types
Prevent mutable value types from being used as generic arguments
Fixes to the runtime library
Created [MutableAttribute] that can be applied to structs to instruct the compiler to copy them when the C# spec says it should.
Implement cloning of mutable value types
Merge branch 'value-types' into develop