Find a way to keep namespace-safety with both clients, components and servers
One of the design defects of XMPP is to have different namespaces for the different connection methods, for example jabber:client for c2s and jabber:server for s2s.
Plugins currently have no knowledge of whether they are loaded on a client, server or component, and it could be useful to keep it that way, but they are currently hardcoding ns::CLIENT for every stanza and element defined in the RFC.
One solution would be to have a global ns:DEFAULT_NS that would change depending on which *Builder would be used, another would be to let the plugins be aware of the *Builder used.