Provides building blocks that are layered on top of channels.
Most of them do not even need a channel, all they need is a class
that implements interface Transport (channels do).
This enables them to work on any type of group transport that obeys this interface.
Building blocks can be used instead of channels whenever a higher-level interface
is required. Whereas channels are simple socket-like constructs, building blocks
may offer a far more sophisticated interface. In some cases, building blocks offer
access to the underlying channel, so that - if the building block at hand does not
offer a certain functionality - the channel can be accessed directly.