Make Registry public

This change set exports a Registry interface implemented by the local
registry type. I added TODO comments along the way with improvements
that could be done to reduce the surface area of a Registry's behaviour
and to make the code more orthogonal overall. I'd be glad to contribute
these changes over time, if you like the direction I propose.

This has been done on top of the `standard-exports` branch.

All tests pass except for the Linux specifc `/proc` related tests. I
suggest that we add linux specific build tags to those files.
I think a `Registry` is orthogonal to the concept of a `Pusher`. As we discussed in IRC, we can make these two functions accept a `Registry` as argument.