File CRUD operations

* File create, delete, and get added.
* #get still needs a way to get the body and metadata at the same
   time. But also other response headers. May need a separate object for
   this–possibly a library-specific response object
* Not pleased with how Client#request is growing in complexity to handle
  various edges. More abstraction needed there.
I'm usually not a "Do what Avdi says" guy if only because I know Avdi too well.  He's mortal too. ;-)  But he captures the point succinctly. Jim promoted the technique.

I don't know that rubocop would have a problem with it.  If a method call, taking a block, assigns/uses the return value, then use squigglies else use do...end.