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.
Should this still say "for the global Prometheus registry", given that there can now be multiple registries (haven't read everything yet)?