This core session listener implements the basic Wonderland protocol selection mechanism. When a new client connects, they request a protcol using a ProtocolSelectionMessage. This listener handles the protcol selection message, either by sending an error or instantiating the listener associated with the given protocol type.
Once the session type has been successfully selected, this listener simply acts as a wrapper, passing all request on to the delegated listener.
TODO: these messages should be defined in binary and not as Java objects to allow connections from non-Java clients.
@author jkaplan