Separate subscriptions from connections, to allow routing

This is a bit more in line with how ZeroMQ does it. #connect is more
like a physical connection, and #subscribe sets a filter on messages.

It's also more complicated, and is a breaking change, since SUB
sockets now have call #subscribe to get any messages at all. But,
aside from that latter, everything works the same by default (since
the default routing is fanout).