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 #2371 from thefiddler/gl_fbo_fix

RFC: Implement ARB and EXT flavors of FBOs