Passed remaining parameters through Texture3D.PlatformSetData, made more consistent with Texture2D.
Implement ARB and EXT flavors of FBOs

MonoGame is currently relying on GL_ARB_framebuffer_object without
checking for support. This means it will fail to run on systems that do
not support OpenGL 3.x+.

This patch implements a fallback to GL_EXT_framebuffer_object when
GL_ARB_framebuffer_object is not supported.

Note that we cannot use GL_EXT_framebuffer_object alone, since many
systems support the ARB flavor but not the EXT one.
Moved capability checking to GraphicsCapabilities
Added GLES support
Fixed uint-to-int conversion for GL resources
Implemented EXT flavor of RenderTarget2D

This reduces minimum OpenGL version from 3.x to 2.1.
Fixed compilation on MonoMac target

MonoMac lacks OpenGL extensions
Fixed compilation on IOS target
Fixed compilation on Android target
Added OpenGL error checking
Fixed check for [ARB|EXT]_framebuffer_object

Also removed redundant CheckGLError calls
Added missing license header
Merge pull request #2423 from SickheadGames/Texture3DPlatform

Add missing parameters to platform methods on Texture3D
Made TextureCube.SetData take a generic type.
Merge pull request #2425 from SickheadGames/TextureCubeGeneric

Made TextureCube.SetData take a generic type.
Merge pull request #2371 from thefiddler/gl_fbo_fix

RFC: Implement ARB and EXT flavors of FBOs
Use threading function in FromStream as suggested by @totallyeviljake
Added Threading to WP project
Merge pull request #2428 from Nezz/wp8_fromstreamthread

Use threading function in WP8 FromStream