dbus: Refactor callback helper struct

The helper struct will be used by a new dbus function which uses
a different callback signature. Therefore, we need to use a
void pointer for storing the callback.
dbus: Add connman_dbus_get_connnection_unix_user()

The UID is fetched via org.freedesktop.DBus.GetConnectionUnixUser D-Bus
method call.
client: Add support for tethering

Add tethering support. For WiFi also set the SSID and passphrase if they
have been specified on the command line. Check that setting both SSID and
passphrase succeed before trying to enable tethering.

After successfully setting SSID and passphrase for WiFi, use the boolean
value parsing helper function return value to decide whether WiFi tethering
is to be enabled, disabled or not modified.

Fixes BMC#25886
client: Follow coding style

Follow coding style and use __connmanctl prefix for the commands() function.
client: Add command completion

Add completion support for connmanctl commands.
client: Trim off spaces from user input

After splitting the input string into components, create a new array holding
the non-zero substrings as input for the commands. Thus the input can start
and end as well as divide its separate parts by any number spaces.
conf: Add description of AllowedTetheringTechnologies
main: Add support for AllowedTetheringTechnologies configuration variable
device: Add support functions needed by ethernet tethering
rtnl: Interface was added to technology too early

The __connman_technology_add_interface() needs to be called
after we have created the technology which is done by rtnl->newlink()
callback. If this is done the old way, the ethernet devices
will not get their interfaces set properly.
ethernet: Add tethering support
conf: Add description of PersistentTetheringMode
main: Add support for PersistentTetheringMode configuration variable
technology: Auto start tethering if enabled and configured

If the user has enabled persistent tethering mode in main.conf, then
try to activate tethering when technology is re-enabled, or we are
returning from offline mode, or after the device has rebooted.
dnsproxy: Return proper return code if listener_table is missing

The listener_table can be NULL if we have started connman with -r
option. Because we return < 0 value to caller in this case,
the caller, e.g. the tethering code, has a possibility to change 
its functionality, e.g. the tethering code can fall back to some
other DNS servers.
tethering: Use fallback nameservers if dnsproxy is not in use

If user has disabled dnsproxy with -r option, then fallback to
user specified nameservers instead of using the Google one.
service: Replace connman_uint8_t with uint8_t
network: Replace connman_uint8_t with uint8_t
include: Remove definition for connman_uint8_t
network: Replace connman_uint16_t with uint16_t