reimagining of buffer creation

 - now d3d code for buffers is performed in buffer_t.cpp
   (rather than being passed off to context_t::create_d3d_buffer).

 - the data size of the initial data given to a buffer can now be
   different from the size of the buffer in total.

 - buffer_usage_t now defines long_lived_shadowed and
   dynamic_shadowed, instead of having a boolean argument given at
   construction. in other words: shadowing buffers are a property
   of their usage
typos in comments and correcting shadow buffer