Refactoring everything...

To get:
* A clean status page powered by websocket
* A clean API
* Background job processing (with Sidekiq)
* A structured Sinatra app
* ...