Add infrastructure to pypeline to allow for pipes to provide custom invalidation, by implementing an `invalidate` function.
deserialize
Change the `Model.deserialize` to a static function, which will return a new instance of the Model.
Add the necessary machinery to allow `Pipe`s, `Analysis`es, `Container`s, `Model` and `ObjectID` to be implemented in C++ and used by Python.