Formatting, Refactoring, etc

Working out of my "formatting" branch, I have been trying to get everything to look consistent and behave nicely. I've been looking for things like

* const wherever possible
* lots and lots of comments
* includes all in once place
* both pragma once and ifdef/define/endif
* consistent curly-brace use

On top of this, I did a lot of refactoring of GLMesh, GLIcoSphere, and GLCubeSphere. Notable changes include

* GLIcoSphere and GLCubeSphere now extend GLMesh and use its drawing methods
* A GLMesh can have any shader. A static map is used to avoid duplicate programs in memory.
* the Refine() methods of GLCubeSphere and GLIcoSphere are hugely refactored and documented so that they make sense now!
* All 3 of these classes are now in the Sigma:: namespace
* Other classes like IGLComponent, OpenGLSystem, etc are also updated to reflect these changes