roverlay/config/, ConfigTree: get options by name

Added get_by_name() to the ConfigTree, which is similar to get(), but takes an
option name (used in config files, e.g. OVERLAY_DIR) instead of a config path
(used in the code, e.g. ['OVERLAY','dir']) as key.
query_by_name() can be used to get multiple options and return them as dict.

Might be useful for scripting.
helper for creating/editing config files

./bin/py/query_config (currently accessible via ./bin/query_config in the
git repo, and not available if roverlay is installed) is a script for
(a) accessing roverlay's config in shell-usable format:
     eval $(query_config OVERLAY_DIR OVERLAY_NAME)

(b) replacing variables in file templates (@@VARNAME@@):

     query_config --config-file ~user/roverlay/R-overlay.conf \
        --from-file <template file> -O <outfile>

    This can be used to create config file templates without having to worry
    about the actual file paths / server address / etc., for example (nginx,
    server{} block):

server {
      listen @@NGINX_SERVER_ADDR@@;
      server_name @@NGINX_SERVER_NAME@@;

      ...

      # package mirror dir
      root @@OVERLAY_DISTDIR_ROOT@;

      ...
}

    (NGINX_SERVER_ADDR and NGINX_SERVER_NAME would have to be given with
    the -v/--variable switch when calling query_config).

    The exit code indicates whether all variables could be replaced or not.

TODO:
* make config option aliases available for (b) (e.g. DISTDIR)
* doc
* script name
* config templates