Buffer traits

I've been thinking about a good way to implement various gl buffers and here is my latest attempt ;)

The idea was to:
- explicitly group methods that operate on a currently bound (to a specific target) buffer;
- have a way to add some convenience methods to reduce the boilerplate;
- be able to bind a single buffer to different targets.

So now the methods that belong to a specific kind of buffer are grouped together into an appropriate access trait. Methods that require buffer to be bound are pushed further into a nested trait (well, all methods are like this currently).

What I'm not happy with this approach is the way abstract values initialization in traits works, things can get tricky.