Rework all GL objects to allow creation and retention outside of valid GL contexts