Only attempt to compile the same shader once if the first time fails.
Added storage methods to the texture classes.
Added a renderbuffer class.
Refactored texture sampler state into its own class
Added a render to texture sample.
Added a random_bool sample helper function.
Fixed some error message strings.
Use for_each_n instead of a loop.
Removed the read framebuffer.
Moved math util functions into an inl file and added an is_power_of_two function.
Refactored the extension and caps intialization in the desktop gl context.
Added new caps for renderbuffer format functionality.
Moved the flush and finish methods to the correct location.
Fixed a bug where multisampled renderbuffers are created when samples is 1.
Added methods for getting the component sizes of renderbuffer formats.
Framebuffer attachments are now immutable.
Textures track which mip levels are compressed.
Fixed the wrong attachment methods being called.
Added renderbuffer tracking methods to the gl state.
Implemented most of GL_OES_framebuffer_object.