@Override
            public void drainHandler(IAsyncHandler<Void> drainHandler) {
                if (apiConnection != null)
                    apiConnection.drainHandler(drainHandler);
            }
Because of the way the parsePayload code was written, it's possible
with async for apiConnection to be +null+ when this is called.

This is because parsePayload invokes inboundStreamHandler before
policiesLoadedHandler has had a chance to return (and assigned apiConnection).

To work around this we check whether apiConnection is null for #drainHandler
and #isFull.
gateway/engine/core/src/main/java/io/apiman/gateway/engine/impl/ApiRequestExecutorImpl.java