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