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.
Fair question. A case statement is an easy refactoring I just hadn’t considered.  Even so, I still consider case itself to be a smell that could and maybe should be resolved by inheritance or composition.

Be it enough to say that I’m keeping an eye on this part of `Client`. I’m sensitive to the ick factor here and expect it to change soon-ish.