FileProvider
Implement the `FileProvider` interface, this allows pipes to request files given a `FileRequest` (hash and optional size/name).
Add the necessary machinery to allow `Pipe`s, `Analysis`es, `Container`s, `Model` and `ObjectID` to be implemented in C++ and used by Python.