Add LibGdx OpenGL Core Profile Renderer.

This is part of a much larger goal that I have of making Nifty mobile
compatible. It's necessary to prune the OpenGL functionality present in Nifty
in order to only use the ES subset to achieve this goal, which is exactly what
I've done here.

This is also an interim update of the rendering system in Nifty. Much more
refactoring is still needed.

---

In nifty-renderer-libgdx:

- Upgrade LibGDX from 0.9.9 to 1.1.0
  - OpenGL ES 1.0 support is gone
  - Minimum OpenGL version is OpenGL ES 2.0
  - OpenGL ES 3.0 is also available (needed for primitive restart, see below)

- Add GdxBatchRenderBackendCoreProfile implementation of BatchRenderBackend that
delegates most methods to BatchRenderBackendCoreProfileInternal, but
specializes several methods such as getHeight, getWidth, & loadImage (those
specialized methods are the reason this class even needs to exist.)

- Add GdxBatchRenderBackendCoreProfileFactory to make it easy to create
GdxBatchRenderBackendCoreProfile. In fact, the GdxBatchRenderBackendCoreProfile
constructor is package-private to force library users to use the factory. Usage
would be like so:

  new BatchRenderDevice(GdxBatchRenderBackendCoreProfileFactory.create());

- Remove GdxBatchRenderBackend & GdxBatchRenderBackendFactory as LibGdx does not
support non-core profile OpenGL (i.e., ES 1.0) functionality anymore.

---

Primitive Restart Changes:

- Modify primitive restart to use the OpenGL ES 3.0 concept of a fixed index;
that is, when using GL_UNSIGNED_INT in glDrawElements, the primitive restart
index must be 2^32 -1, or 0xFFFFFFFF. 0xFFFF was being used previously, which
worked because the index was not fixed - it would simply used the largest value
in the element buffer. This is the only way primitive restart can be used with
OpenGL ES 3.0, however, fixed index support was not added to desktop OpenGL
until version 4.3, or to ES until version 3.0. Therefore, the new minimum
OpenGL version that is supported for Core Profile is 4.3 / ES 3.0. This seems
reasonable, since anyone having an older version of OpenGL is on an older
device and should just use a non - Core Profile renderer.

---

Remove support for some features that don't intersect with OpenGL ES 3.0, in
order to move Nifty Gui closer to running on mobile devices (which is my goal).
These are major API changes:

1) Remove support for specifying the primitive restart index when
enabling/disabling primitive restart in CoreElementVBO (The index is fixed
internally).

2) Remove support for compressed texture formats in CoreTexture2D, since OpenGL
ES 3.0 doesn't support the following constants:
  public int GL_COMPRESSED_ALPHA();
  public int GL_COMPRESSED_LUMINANCE();
  public int GL_COMPRESSED_LUMINANCE_ALPHA();
  public int GL_COMPRESSED_RGB();
  public int GL_COMPRESSED_RGBA();

3) Remove support for BGR / BGRA texture formats in CoreTexture2D, since LibGdx
doesn't support the following constants in OpenGL ES 3.0:
  public int GL_BGR();
  public int GL_BGRA();

4) Remove support for geometry shaders, since they are not supported in OpenGL
ES 3.0 doesn't support them o_O.

5) Remove support for buffer object mapping, since OpenGL ES 3.0 doesn't
support the following constants:
  public ByteBuffer glMapBuffer(int target, int access, long length, ByteBuffer oldBuffer);

6) Remove support for the following texture data types, since OpenGL ES 3.0
doesn't support the following constants:
  public int GL_UNSIGNED_BYTE_2_3_3_REV();
  public int GL_UNSIGNED_BYTE_3_3_2();
  public int GL_UNSIGNED_INT_10_10_10_2(); (In OpenGL ES 3.0 but not LibGDX)
  public int GL_UNSIGNED_INT_8_8_8_8();
  public int GL_UNSIGNED_INT_8_8_8_8_REV();
  public int GL_UNSIGNED_SHORT_5_6_5_REV();
  public int GL_UNSIGNED_SHORT_4_4_4_4_REV();
  public int GL_UNSIGNED_SHORT_1_5_5_5_REV();

Note: The one exception to 6) that is still included is:
  public int GL_UNSIGNED_INT_2_10_10_10_REV();

7) Remove support for GL_STACK_OVERFLOW & GL_STACK_UNDERFLOW constants. They
don't exist in OpenGL ES 2.0 / 3.0. Remove explicit error checks in CheckGL for
them. The "else" case will still catch them in the rare chance that it actually
does happen. The else case has been improved to output "Unknown error code: "
and the actual error code just in case someone actually needs it.

8) Remove support for GL_BLEND_SRC & GL_BLEND_DST constants, and replace them
with GL_BLEND_SRC_RGB, GL_BLEND_SRC_ALPHA, GL_BLEND_DST_RGB,
GL_BLEND_DST_ALPHA, respectively.  GL_BLEND_SRC & GL_BLEND_DST were only used
in CoreProfileSaveGLState with glGetIntegerv. OpenGL ES 2.0 / 3.0 does not
accept GL_BLEND_SRC & GL_BLEND_DST in glGetIntegerv; the RGB and Alpha
components must be specified separately.  Since GL_BLEND_SRC & GL_BLEND_DST
aren't being used now, remove them completely. They could be added back in if
needed as they are supported in and of themselves. Obtain these four new values
separately in the saveCore method of CoreProfileSaveGLState. Add the OpenGL
function glBlendFuncSeparate (int srcRGB, int dstRGB, int srcAlpha, int
dstAlpha) to CoreGL to process these four new values in the restoreCore method
of CoreProfileSaveGLState.

---

Other related changes:

- Some GL interface methods (compatibility OpenGL) are no longer supported by
LibGDX since the removal of OpenGL ES 1.0 support from the library. These
methods throw an UnsupportedOperationException in the GdxGL (compatbility
OpenGL) implementation. GdxGL is marked as deprecated, and is only used
internally since GdxCoreGL inherits from it and uses some of the non-deprecated
methods that still work.

- Mark GL interface methods that are no longer supported by GdxGL (the ones
that throw UnsupportedOperationException) as deprecated. Eventually they
should be deleted and Nifty should not rely on them anymore. There is
absolutely no chance of an UnsupportedOperationException being thrown in Nifty
since there is no GdxBatchRenderBackend or GdxBatchRenderBackendFactory anymore
(the only classes that actually relied on those methods in GdxGL). Other
implementations of GL (Lwjgl, Jogl) still provide support for those deprecated
methods in the meantime.

- Rename private enable method in CoreProfileSaveGLState to enableOrDisable,
since that is what it does. It's misleading to call something "enable", when
it may actually disable something...

- Modify javadoc of applicable Core Profile classes to specify OpenGL 4.3 / ES
3.0 or higher is required.

- Modify javadoc of applicable non - Core Profile classes to specify OpenGL 1.2
or higher is required and add warnings that they are not suitable for OpenGL
ES / mobile devices.

- Move CoreMatrix4f, CoreMatrixFactory, & CoreVector4f out of
de.lessvoid.nifty.render.batch.spi.core and into
de.lessvoid.nifty.render.batch.core where they belong, since they are concrete
implementations and not interfaces.

- Remove config.useGL20 = false from all examples in
nifty-examples-libgdx-desktop & nifty-examples-libgdx-desktop, since that
option doesn't exist anymore. For nifty-examples-libgdx-desktop, use
config.useGL30 = true instead (nifty-examples-libgdx-android doesn't support
config-useGL30 = true).

- Move nifty.fs & nifty.vs into nifty-core/src/main/resources. For some reason
there were two copies of these shaders, one in nifty-renderer-lwjgl and one
in nifty-renderer-jogl2. Seeing as they are only used by a class in nifty-core,
BatchRenderBackendCoreProfileInternal, it makes sense to have one copy in
nifty-core.

---

Pom overhaul (unrelated bonus):

- Add dependencyManagement section to main pom to consolidate versions and to
simplify the submodules' pom's. Adding dependencies to this section DOES NOT
ADD THEM to the submodules automatically. A submodule will only add a
dependency if it specifies it explicitly in its own pom. It just makes it
easier because it doesn't have to care about the version or scope.

- Remove redundant version / scope tags from submodule pom's where possible.

- Add easymock & junit dependencies to sumbodules that use them since they are
no longer implicitly inherited because they were moved into the
dependencyManagement section of the main pom.

- Remove unused, commented-out slick.cokeandcode.com maven repository from
nifty-renderer-slick pom.

- Update formatting of all pom's to be of uniform style: use two spaces for
indentation, move dependency sections near the top, nifty is always the first
dependency, remove extra spacing between sections.

- Apparently a side effect of the pom refactoring was that the tests in
nifty-controls were compiled against a newer version of junit, revealing the
naughty use of a deprecated assertEquals method comparing *gasp* floating point
values directly, without specifying any delta o_O. Junit auto-failed these
tests with a nice message recommending to use the assertEquals method that
specifies a delta. Update these tests to use the new assertEquals method with a
delta value.

- SliderImplTest.testChangeStepSize fails now that the floating point values
are being compared correctly using a delta o_O. Add @Ignore annotation and a
FIXME comment until someone can figure out what's going wrong with that test.