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.
The special cases in this method are making me increasingly unhappy.  I'm not certain if there are yet more that I will need to add down the line.  

I'd hate to have almost every caller of this method be responsible for calling `JSON.parse` with the exception of `File#get` only because that's one of the few, if not the only, resource that can surprise us with a different MIME type.

Much of the rest of the code is fairly clean so far but I see `Client#request` as a risk area. It's central to the library.  As the responsibilities of the library increase, it may grow more responsibilities necessitating additional refactorings.