separate backend definition from listener

By allowing the user to not create a backend for each listener, we can
allow for a single generic listener which picks backends based on the
http host header, removing the need to have dedicated ports for every
HTTP-based service.  A new example config file is appended to
demonstrate.

Also: use YAML rather than JSON to parse the config file, because
comments are nice things to have.  Existing JSON configs continue to be
valid YAML.

Also: update the package version in Gemfile.lock to match version.rb
Address some style/logging issues from Igor47
factor out json/yaml conversion; we can save that for another time :)
Merge pull request #16 from memory/twerk

separate backend definition from listener