Load ES30 and OpenGL4 entry points
Remove static init of GetCurrentContext

The static initializer of GetCurrentContext would always default to the
desktop PlatformFactory, which caused problems when trying to run OpenGL
ES code on the desktop. The initializer is now removed and
GetCurrentContext is set in the context constructor, before creating any
contexts.
Stronger check for ES support

It is not enough to check for EGL, we also need to check that
ContextProfileFlags.ES is set.
Updated WGL init sequence

WinGraphicsMode no longer creates a temporary context in order to create
the list of available modes. Instead, it requires to be passed an
existing context in its constructor.

WinGLContext now creates one temporary context in its static constructor
and hands that to WinGraphicsMode.

WinFactory no longer supports the CreateGraphicsMode API. This API will
be removed in the future, because the link because contexts and modes
cannot be separated in the general case.
Fixed platform detection for Android

Conflicts:
	Source/OpenTK/Configuration.cs
Fixed ES rendering.
Added SDL_GL_GetCurrentContext method and TouchMouseID constant.

SDL_GL_GetCurrentContext will allow us to replace the weird
implementation in Sdl2Factory.CreateGetCurrentGraphicsContext()
and the latter to disable mouse emulation if we wish to.
Conflicts:
	Source/OpenTK/Platform/SDL2/Sdl2.cs
More sane Sdl2Factory.CreateGetCurrentContext() implementation
Added missing doc comment
Merge branch 'master' of https://github.com/thefiddler/opentk into modes
SDL_GL_GetAttribute requires a valid context

Calling SDL_GL_GetAttribute when context construction has failed leads
to erroneous behavior. This call should only be made when a context has
been constructed correctly.
Deduplicate MacOSGraphicsMode and AglContext

The IGraphicsMode interface is gradually being removed and the
MacOSFactory will now throw an exception if an instance is requested.
AglContext no longer duplicates MacOSGraphicsMode functionality.
Temp context not necessary for GLX

GLX entry points are not bound to a specific context. This means that, unlike WGL, GLX does not require a temporary context in order to load its entry points!
Fix support for 3.2+ contexts (issue 3111)

glXGetProcAddress may return a non-null value even if a function is not
supported by the server. We need to check the extension string using
any GLX extensions. Fixes issue http://www.opentk.com/node/3111 "GLX
extension support is not checked correctly".

Furthermore, mode selection is now performed explicitly by the
X11GLContext constructor.
Merge branch 'master' of https://github.com/thefiddler/opentk into modes
Merge branch 'master' of https://github.com/thefiddler/opentk into modes
Use glXGetProcAddressARB

According to the Linux OpenGL ABI, glXGetProcAddressARB must be statically exported by libGL. This does *not* hold true for glXGetProcAddress. We must used the ARB version instead.
Furthermore, glx entry points, unlike wgl, do not depend on any specific OpenGL context. This means we can load them in the constructor of the Glx class.
Allow non-realized GraphicsMode

It is now possible to pass a non-realized GraphicsMode to the X11GLContext and X11GLNative constructors. A non-realized GraphicsMode is a GraphicsMode with a null Index (i.e. which has not passed through SelectGraphicsMode()).
Added mapping for libXi

On Debian-based distributions, libXi.so does not exist. We have to lookup libXi.so.6 instead.
Merge branch 'modes' of https://github.com/thefiddler/opentk