gfx: Move Buffer class out of geometry.hpp/cpp
gfx: Implement uploading/downloading texture data from buffer
gfx: Use pixel buffer objects to upload image data

This is effectively a workaround for OS X 10.10 performance regression for compressed texture uploading (40 Mb/sec for BC2/3/5...)