[connman] plugins: Create an interface for wakeup timers

Mobile phones and other battery-powered systems may suspend often and
for long periods of time. However, connman may need to perform
scheduled operations such as DHCP renewal at specific times regardless
of whether the system is suspended or not.

Provide a plugin interface for implementing wakeup timers which can be
used to request the system to wake up from suspend at a given
time. These timers are intended for relatively infrequent events which
do not need high timing precision, not as general purpose replacement
for g_timeout functions, as wakeup from suspend can be a slow and
expensive operation.

If no wakeup timer is implemented, regular glib timeouts are used.

Note that only one wakeup timer plugin may be registered at a time.
[connman] plugins: Implement IPHB wakeup timer

Implement a wakeup timer based on libiphb (DSME).
[connman] gdhcp: Change DHCP client to use wakeup timers

Renewing DHCP leases is an operation that needs to be done even if the
device is suspended; use wakeup timers for DHCP client timeouts to
ensure device wakes up from suspend when needed.