Middleware

Middleware are the Extension point for integration of other services
like Spork, StatsD, Rollbar and so on. By default there exists 4
middlewares. 2 of them are internal.

Internal

* Queue. Every queue implements Middleware and its function is for
queueing.
* Invoker.

External

* ErrorLogMiddleware. Uses error_log to report exceptions from
consumers.
* LoggerMiddleware. Uses PSR-3 to log different aspect of consuming and
producing of messages.
Rename internal API for Middleware{Chain,Builder}

`add` -> `push`
Add new `unshift` method to move middleware to the top of the stack.
5.3 Compabt.
Simpler ErrorLogMiddleware
It is pretty clear what the requirements are, no need to define in suggest.
Fix typo
Merge pull request #67 from henrikbjorn/middleware

Middleware