More refactors on mqtt::client interface

The subscription and publishing interfaces were not symetrical. Some
renaming on `mqtt::client` class, publishing interface extracted in
`mqtt::message_publisher`, some renaming of message types, and some
other minor fixes.
Make Mosquitto client accept connection params

Now `mosquitto_client` accepts server hostname and port in its
constructor. That makes possible to connect to non-default brokers.
Remove MQTT client IT dependency to its runner

MQTT client IT used to depend on a MQTT broker runner in order to
control the presence or absence of the broker. This was due to the
necessity to test the client against a unavailable broker, but caused
problems to run the process when the Mosquitto service was already
running.

Now the IT depends exclusively on a running Mosquitto service. The
unavailable broker is simulated by a client attempting to connect to
a non-existing service in a remote host.
Make config provider read domain settings

The domain settings are comprised by some common properties (name,
description, ...) and some custom fields that may be consumed by
the domain on its creation.