Add `commander` package so it's easy to run app with CLI options.
Extract basic application parts to separate files.

* Application is now `Application` instance
* Application can be provided with custom logger, server instance etc.
* `index.js` file allows to run server directly with node and ENV
variables
* `./bin/www` is nothing else than CLI abstraction to index.js (allowing
custom options)
Make sure app when executed returns empty object if not set to custom
engine.
Get rid of old code (unused code that got abstracted).
Restructure project a bit (folders + loading modules).

1. Filters & middleware moved to the config/ directory.
2. Created controllers directory with simply structured controllers.
3. Created routes directory with simply structured routes.
4. app.js loads files from these directories from now on.
Split between before- and after- dispatch middlewares. Order = filename
order.
Move routes to config.
Extract all middleware from app.js to middleware files.
Fix linting errors.
Get rid of console log, add meaningful variable names.
Link correctly to the public dir.
Merge branch 'restructure-folders-extract-api'