Merge refactoring with coregl master

Broad overview of changes, as copied from major commit notes:
-Added 'CoreGL', an interface provides an implementation indepenent API for accessing OpenGL functions and constants
-Moved Core interfaces to spi package
-Added JOGL and LWJGL implementations of CoreGL interface
-Changed most of the interfaces in core package to classes that use the abstracted CoreGL interface
-Added CoreUtil interface as an abstracted utility API (also wrote JOGL/LWJGL implementations for it)
-Implementation of CoreSetup for JOGL (not yet tested!)
-Removed previous Core* class implementations from JOGL/LWJGL modules (except for classes that have not yet been finished in core package).
-All examples in the core-utils-examples module have been reworked to use the new CoreGL library interface.
-Modified CoreSetup.RenderLoopCallback interface (and removed RenderLoopCallback2)
-Added CoreVersion for version checking
-Fixed CoreShader not locating uniform array methods properly (partially because they didn't exist yet)
-Added package internal class CoreExampleMain to abstract main entry points for all coregl example classes

And lots of other stuff. Woo.