fix haproxy config if webapp and mx run on the same host

the problem was, that both site_mx::haproxy and site_webapp::haproxy
declared the same resource.
I fixed it by moving that resource to site_haproxy.
Since that gets included by both classes, everything works like
a charm
remove old classes

site_mx::haproxy and site_webapp::haproxy only
included site_haproxy. They didn't do anything else.
So just include site_haproxy in manifests/init.pp and
remove the unused classes
remove unused variable local_ports
move haproxy-template to modules/site_haproxy
Merge remote-tracking branch 'cz8s/feature/allow_webapp_and_mx_on_one_host' into develop
clarify comments in site_sshd::authorized_keys

Change-Id: I679dfe8dff90b7c86ab0ffff43e13958f1ec2c99
Switch away from site_config::sshd and instead just include site_sshd

The existing site_config::sshd had a non-functioning 'include sshd' line
in it that was not doing what was expected (this was supposed to include
the sshd module, but due to scoping was including itself).

It seemed better to eliminate some of the unused pieces and consolidate
into one config location.

Change-Id: I79dd904e696ca646180a09abbb03b5361dfc8ab9
Update sshd submodule to get necessary fixes to enable us to change sshd port

Change-Id: I3b6a87c9d6a2c349392e5bc98a68b800645fde92
Add missing scope to top-level sshd class, passing necessary parameters
for configuration (#3108)

Change-Id: I4f94a47d47a40bfc6835359e7781707f96e91db0
fix unbound: configs in /etc/unbound/unbound.conf.d contained a syntax error and were missing .conf suffix
added support for /provider.json served from static site.
added templatewlv function (allows passing local variables to templates)
static site: added rack support, added custom apache config
work around hiera's inability to escape '%' by using ':percent:'
remove superfluous RackBaseURI directive
static site: better message for wrong location type.
static site: gracefully handle static sites that are not configured.
move hiera from site.pp to site_config::setup

the problem was following:

if a host has the webapp service, the template for /etc/hosts adds some stuff.
But setup.pp did not ask hiera about the services so
"/srv/leap/bin/puppet_command set_hostname" always resets the hostname.
Since that gets triggered every time you run "leap deploy" the
hostname changes, some services restart, then the hostname changes back and
the services restart again.

The solution is to get the hiera data before every run.
bugfix: actually apply modules based on $services
clean up how /etc/hosts is generated so it doesn't require custom behavior depending on the services.