Some refactoring of buffer.py
  * The Buffer class is now data agnostic for real.
  * Got rid of size attribute; use shape instead (which is richer)
  * Implemented set_shape, set_data, set_subdata, to match with Texture
    and RenderBuffer
  * Data can be set at any time, overriding both shape and dtype
  * VertexBufferView cannot set data.
  * Split ClientBuffer in ClientVertexBuffer and ClientElementBuffer.
    (and these can also not set data)