Array.cs - first attempt to get the "for each' correctly working with Array when dynamic properties have been set.

This code:
  	var a:Array = [];
        	a[0] = 10;
        	a[1] = 11;
        	a[2] = 12;
        	a["key_a0"] = "a0";
        	a["key_a1"] = "a1";
        	a["key_a2"] = "a2";
        	for each(var o:Object in a)
        	{
        		trace(o);
        	}
        	for (var o:Object in a)
        	{
        		trace(o);
        	}

Will now produce:
10
11
12
a0
a1
a2
0
1
2
key_a0
key_a1
key_a2
VertexBuffer3d.cs - UploadVertexData function when uploading part of the array crash (when calling GL.BufferSubData), did a temporary solution so we don't crash.
VertexBuffer3d - subData upload finally working.
Merge branch 'master'
Matrix.play - invert() matrix fully implemented for tx and ty.
BitmapData.play - added naive implementation ofr the draw() when the source is a bitmapData,
todo: add support for smoothing , cliprect , color transform , blendMode.
also, the blending mode used right now is a straight copy (no blending at all)
Updated PERFORMANCE_MODE to correct issues with Array and to provide an optimized Dictionary type.
Merge branch 'performance-mode' of https://github.com/playscript/playscript-mono into perf_mode
Fix PERFORMANCE_MODE defines
Dictionary needs to be a dynamic class
Fix performance mode Array/Dictionary inheritence
Merge branch 'performance-mode'

Conflicts:
	mcs/class/pscorlib/Array.cs
Performance mode fixes

Changes:
- Revert optimized Array.splice behavior
- Fix Array.indexOf
- Remove accidental debug code change to Dictionary
Fix dynamic properties accesses for Array
Enable PERFORMANCE_MODE for mcs projects
Support passing in test names from the command line
Fixed warning in Dictionary performance mode.
Removed default value on argument of Vector.sort().
  Unlike Array.sort(), an argument has to be provided.
code clean up based on merge request comments.
compilation warnings fixed.