Added interface for OpenGL objects that can be deleted

Any OpenGL object that can be created, needs to be deleted.  This
interface describes those objects and also allows for querying of the
object's current state - if it exists or not.