dhcpv6: Remove CONFIRM message sending when connecting a link

The CONFIRM message is not sent any more as it does not make much
sense because we do not save address expiration time so we cannot
really know how long the saved address is valid anyway.

The reply to CONFIRM message does not send expiration times back
to us so we cannot get them from server either. Because of this
we need to start using SOLICITATION anyway when a link is
connected.

Thanks to Pasi Sjöholm for reporting this.
[connman] Clean up wakeup timer unit test

Use stubs instead of actual IPHB implementation, so that the unit test
can be run successfully also in the development environment.
dhcpv6: Reset last_request to current time with renew and rebind

last_request needs to be set current time also with renew and rebind
or otherwise the values set by g_dhcpv6_client_get_timeouts will not
be changed.

This fixes the issues with __connman_dhcpv6_start_renew and
check_restart comparing incorrect started,expired-values to current
time after successful renew/rebind.
gdhcp: RFC3315 18.1.3 Allow setting valid lifetime to lower value

Server's value for valid lifetime can be set lower during during
rebind/renew if server configuration has been changed or if the
server wants to remove the address from the IA by setting valid
life time to zero.
network: Remove expired IPv6 address lease set to interface

If IPv6 address leased from DHCPv6 server somehow gets expired it
needs to be removed from the interface and not to be left in place.
dhcpv6: Remove the old IPv6 address from the interface

If interface gets assigned a new ipv6 address during renew/rebind we
need to make sure that the old ipv6 address is removed from the
interface and not left in place.
network: Set IPv6 ipconfig if it is missing

Following scenario is possible:
- we have a wifi service A connected and IPv6 is enabled for it
- we connect to other IPv6 enabled service B
- the first service is disconnected
- kernel sends rtnl messages related to events that are done   when
  we connect/disconnect the services
- if A service's link down event is received after we have received
  B's link up, then we will remove the ipv6 config from service B
- this has the effect that IPv6 addresses are not known by service B
  any more

So when we receive a reply to router solicitation message, we check
if the IPv6 config is still there in service B. If it is not, then
we can create it so that service gets the IPv6 config back.

The missing IPv6 config can only happen if we are switching from one
service to another. If we disconnect first service A and then
connect service B, no issues were seen.
ipconfig: Do not disable kernel IPv6 support when disabling ipconfig

When ipconfig is disabled, it is not really necessary to disable
IPv6 support. Doing so will lead to issues when switching from
one service to another in the same network interface. User would
see that the IPv6 is disabled in kernel although user has IPv6
enabled in the service.

Thanks to Arjuna S <arjunasiva@gmail.com> for reporting this.
ipconfig: Do not enable or disable IPv6 unconditionally

When setting an ipconfig it is not known whether the service is in
active use or idling. Therefore enabling or disabling IPv6 cannot
happen at this point.
service: Allow setting a passphrase for provisioned WiFi EAP services

Allow changing of WiFi EAP passphrases for a provisioned service as they
cannot always be preconfigured. The same applies to WiFi EAP identities,
but there modification was already allowed.

Thanks to Thomas Green for reporting the issue.
service: Enable modified IP configuration only if connected

After assigning the new ipconfig to the service in question, enable
the new ipconfig only if the service is currently in use, i.e. the
service is connecting or connected. Otherwise the new ipconfig will
be applied to some other service.