Private class to pass Handlers added from the Builder to the constructor. 

This has another nested class ``IntermediaryHandler`` because: 
A user might do several ``addBefore`` and ``addAfter`` in an arbitrary order. We must maintain that order when adding the handlers to the pipeline since netty would throw an exception if the 'before/after' handler didn't exist. Thus we let the user deal with the ordering of handler addition (like how netty does it), but ensure that their ordering of statements is maintained.