add HttpKernelInterface for adding middleware

- Basic idea of middleware in PHP.
  - https://github.com/symfony/HttpKernel/blob/master/HttpKernelInterface.php
  Inspired by:
  - http://stackphp.com
  - https://github.com/symfony/HttpKernel
  - https://igor.io/2013/02/02/http-kernel-middlewares.html