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.
No - accepting either a `Container` instance or a `container_name` String for these arguments, and extracting the name if it's a `Container`, enabling code like:

```ruby
c = cf.containers.create 'stuff'
fs = cf.files.list(c)
```

Basically, insulating callers from having to know what attribute of the parent resource is the "identifier" that's used in the URL for child resources, but also not forcing you to construct a parent object if you know what the identifier is a priori. Pyrax does this, for example. It's more handy for services like monitoring, where `Entities` have labels and ids, for example.