Allow IMessageHandler implementations to handle multiple IMessage types

This somewhat mimics Netty's implementation of SimpleChannelInboundHandler: 

    public abstract class SimpleChannelInboundHandler<I> extends ChannelInboundHandlerAdapter {
        ...
        protected SimpleChannelInboundHandler(Class<? extends I> inboundMessageType)
        ...
    }

I was running the tests at runtime using:
```JUnitCore.runClasses(SimpleNetTester.class);```