pingo. Simplify geometry and shader initialization and cleanup.

Remove initialize and cleanup methods.
Move all initialization and cleanup (load and unload) to constructor and destructor.
Change the gl object implementation to perform initialization and cleanup the constructor and destructor.
The GL implementation of goemtry, program and shader still have the static initialize and cleanup, since these are just convenience methods called from the gl object constructor and destructor.