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 know we talked about this earlier, but it feels weird to me that `#next_page` is the only case where an API call is performed without directly involving the `Files` or `Containers` instances. The alternative being something like:

```ruby
r1 = containers.list(region: :dfw, limit: 1)
# ...
r2 = containers.next_page(r1)
```

Uglier, but more consistent, I think. This wouldn't let us handle the case where more than one call available on an API object has a paginated response, though - not without some trickery that would probably be worse.