hostname: factor out hostname related functions from misc
host-resolve: factor out resolver related functions from misc
hostname: refactor, cleanup and test coverage

This is a largish patch that contains multiple changes to the hostname
module.  The intentions of this patch are:

  * port new functionality from PE, which is essentially custom-domain()
  * make the code easier to follow and define clear semantics of all
    functions and test it via a unit test program
  * add the foundations of a custom-domain() option that can be used to
    override the local domain name
  * introduction of global_init/deinit function pairs
  * add two new functions that convert a hostname from fqdn to short and
    vice versa

Although it'd be better to split this patch along these lines, however
splitting it up is not really easy because of the internal dependencies, and
that the original was written as a single iteration. Essentially internal
steps would need to be rewritten from scratch.

Signed-off-by: Viktor Juhasz <jviktor@balabit.hu>
Signed-off-by: Balazs Scheidler <bazsi@balabit.hu>
host-resolve: use hostname provided functions instead of global variables directly
cfg: implement custom-domain() setting
host-resolve: factor out normalize_hostname()
host-resolve: introduce HostResolveOptions

This patch adds HostResolveOptions to contain all resolver related
configuration options.

Signed-off-by: Balazs Scheidler <bazsi@balabit.hu>
host-resolve: reindent error messages