An OutgoingSessionPromise provides an asynchronic way for sending packets to remote servers.
When looking for a route to a remote server that does not have an existing connection, a session
promise is returned.
This class will queue packets and process them in another thread. The processing thread will
use a pool of thread that will actually do the hard work. The threads in the pool will try
to connect to remote servers and deliver the packets. If an error occurred while establishing
the connection or sending the packet an error will be returned to the sender of the packet.
Returns the XMPP address. The address is used by services like the core
server packet router to determine if a packet should be sent to the handler.
Handlers that are working on behalf of the server should use the generic server
hostname address (e.g. server.com).