Fix wrongly set return values in OGLCombinerNV.cpp (from what I've read in the in-file docs).

Comments for those specific branches seem to support this too.
Cosmetic changes to clarify subsequent changesets.

Assert(no functional changes).

Benefit of hindsight here. I'm consolidating a bunch of non-functional
changes now to make subsequent changesets cleaner and easier to follow.

This commit only changes:
 - whitespace
 - header order in a few places
 - re-order a few lines related to glBegin
 - replace gl{En|Dis}able(GL_FOG) with TurnFogOnOff({true|false})
 - replace 1.0 with 1.0f in one place
Add abstraction layer header for GL/GLES2.

Assert(no functional changes).

osal = Operating System Abstraction Layer

Following the naming convention used through the Mupen64Plus core and
plugins.  Simplifies merging the GL/GLES2 code bases.
Surround OpenGL-specific code with SDL_VIDEO_OPENGL.

Assert(no functional changes).

Symbol defined in the platform-specific SDL headers (SDL_config*.h).

This is a lot of ifdefs, but the point here is to facilitate trace-
ability throughout the ES 2.0 integration process. The plan is to
beautify this code later, after we verify that the OpenGL codepath is
intact and the OpenGL ES 2.0 codepath behaves as intended.
Implement OpenGL ES 2.0 code path.

Assert(no functional changes to OpenGL code path).

Originally implemented for Paul Lamb's (paulscode) Android port of
Mupen64Plus.

https://github.com/paulscode/mupen64plus-ae
http://www.paulscode.com
Use short-type vertex indices (rather than int-type).

Unsigned short vertex indices are more broadly supported across the
OpenGL variants.  This shouldn't change plugin behavior as long as it
isn't using any vertex arrays with more than 65,535 elements.
gles2rice: Cosmetic changes to clarify subsequent changesets.

Assert(no functional changes).

Benefit of hindsight here. I'm consolidating a bunch of non-functional
changes now to make subsequent changesets cleaner and easier to follow.

This commit only changes:
 - comment text
 - debug logging
 - whitespace
 - non-functional code that is not upstream
 - line rearrangement (no functional differences)
 - inline/outline a couple tiny functions (related to fog, alpha)
gles2rice: Simplify/isolate AE-specific code using PAULSCODE symbol.

That is, code that is strictly related to the paulscode Android edition
that has nothing to do with GLES2.  This material shouldn't be pushed
upstream (or at least not yet in the case of Gilles' screen position
feature).

AE-specific code is isolated using the PAULSCODE preprocessor symbol.
gles2rice: Surround gles2-specific code with SDL_VIDEO_OPENGL_ES2.

Symbol defined in the platform-specific SDL headers (SDL_config*.h).
gles2rice: Pull gl-specific code from upstream.
gles2rice: Rename OGLFragmentShaders.* => OGLES2FragmentShaders.*.

The fragment shader source code is so different between up and down-
stream that it might make more sense to maintain it using completely
separate files.  The amount of code shared between the two is minimal,
and it's probably a lot easier to manually synchronize these small
sections than to maintain two very different implementations in the
same file.
gles2rice: Pull upstream version of OGLFragmentShaders.*.

These are never compiled but we include them for up/down consistency.
gles2rice: Use macros to eliminate up/down diffs.
gles2rice: Simplify some gles2-specific code.
gles2rice: Add/remove code to match upstream.

**POSSIBLE DOWNSTREAM BEHAVIOR CHANGE**

These changes are apparently benign from my very limited testing. It
would be good however to get a second opinion.

Render.cpp:
 - Video buffers can be saved to PNG file

TextureFilters.cpp:
 - Option flag is not lowered when hi-res textures fail to load.

Video.cpp:
 - Core API is used to test plugin version compatibility.
 - ReadScreen2 now populates some output variables.
gles2rice: Revise texture-related code to match upstream.

**POSSIBLE DOWNSTREAM BEHAVIOR CHANGE**

Second opinion needed.

OGLExtRender.cpp:
 - Max texture units are queried rather than hard-coded to 2.

OGLGraphicsContext.cpp:
 - Max anisotropy level is queried rather than hard-coded to 0.

OGLTexture.cpp:
 - Anisotropic filtering is applied if user enabled and device capable.
 - Mipmaps are now generated if user enabled it.
gles2rice: Extension support is actually tested.

**POSSIBLE DOWNSTREAM BEHAVIOR CHANGE**

Second or third opinion needed.

Originally, extension support queries always returned false. Now they
are actually queried, and might return true.  Two questions:
 - Will anything break if the the support query returns true?
 - Are the correct extension names being used for GLES2?
    - This includes not only the multi-texture and additive texturing
      as seen in this commit, but a whole list of other extensions
      that are queried throughout the code base using
          COGLGraphicsContext::IsExtensionSupported
      in OGLGraphicsContext.cpp.
gles2rice: Revert to upstream by defining some GL constants.

**POSSIBLE DOWNSTREAM BEHAVIOR CHANGE**

Second opinion needed.  Not sure this changes anything.
gles2rice: Revert flush/swap/clear mechanics to upstream.

**POSSIBLE DOWNSTREAM BEHAVIOR CHANGE**

Second opinion needed. Some quick tests didn't reveal any issues, but a
more thorough test/analysis is needed.
gles2rice: Revert initial window sizing to upstream version.

**POSSIBLE DOWNSTREAM BEHAVIOR CHANGE**

Second opinion needed. Some quick tests didn't reveal any issues.