Added base interface for conventional OpenGL objects

Most OpenGL objects have the same functionality.  This is a combination
of that basic functionality into a common interface.  This interface
specifies that an OpenGL object is indexed, can be bound, and can be
deleted.