client: let the client create streams on behalf of the cluster.

This keeps the stream creation in one place, which i think is desired
despite the fact that it makes cluster/client tightly coupled. That
was the idea to begin with anyway, so not so bad.