First implementation of minimal Broker API

I guess I have to clarify my comment, because it's pretty much inline with the reasoning here.

My argument was that other than for message type, no proper routing will possible in the broker. We all agree on that because it's obvious the broker cannot "look into" messages (beyond their type id). My conclusion was: Why bother implementing it at this level. Provide a separate class that includes the receiving bit and routes according to message type. If users want it, fine, they can take it. If not, they just leave it out. If anybody suggests a different strategy (e.g. round robin distribution w/o message content inspection), so be it, let them implement a corresponding strategy. Multiple receivers for a single message, again, let them have it.

My argument is very much: If you can't handle these use cases properly here, just defer them to separate classes. I'm not against routing altogether. It makes perfect sense. At the same time it should be handled in the same manner for all cases. This is a matter of symmetry again, or if you wish conceptual integrity.

And once again: I'm fine with taking this on for now and revising if the need arises. But I'd tag it right away.