BREAKING CHANGES
vbo.d:
        -renamed VertexElement into VertexAttribute for clarity
        -added a new Role: GENERIC
        -useOlderAttribFunctions is not needed anymore and the user can
            freely mix older functions with glVertexAttrib* ones
        -state can now only be "USED" or "UNUSED"
        -added VBO and IBO properties the the VertexSpecification class:
            if the user sets a VBO or IBO, they will be automatically
            bound and unbound from the current state when use/unuse is called
program.d:
        -when linking, ad optional array of strings is taken as input.
            Every string in the array should correspond the name of a
            generic attribute used in the program's shaders.
            This allows simpler usage of attributes from the
            VertexSpecification class.