Changed OpenGL object semantics

 * Object IDs are not generated automatically at object creation
   => it's now possible to declare objects at library level
 * The user has to create an ID manually before using the object
 * Updated tests.