Expose some client methods.

The producer and consumer still make use of some private methods, but those are
harder to expose consistently. This is at least a good start towards #23.

Flo, this should make your map app a lot simpler.

@fw42 @burke @Sirupsen