Producer implements Middleware.

Because Middleware now are Queue Aware it does not make sense
to have the Queue object implement Middleware. Instead the Producer
have this task and just delegates the enqueue call to the given Queue
argument.