Fix start-up order for making DHCPv6 DUID

Previously, if the DUID wasn't read from the lease-file or
script, a new one was created _after_ the helper process fork,
so for that first run, the script calls got an empty DUID.

Also, use a DUID_LL format DUID when there's no stable lease
storage, as well as when the RTC is broken. That has a chance of
evaluating to the same value on each startup.
diff --git a/src/dnsmasq.c b/src/dnsmasq.c
index a2b37dc..a701ab5 100644
--- a/src/dnsmasq.c
+++ b/src/dnsmasq.c
@@ -273,6 +273,9 @@
   /* after enumerate_interfaces() */
   if (daemon->doing_dhcp6 || daemon->relay6 || daemon->doing_ra)
     join_multicast(1);
+
+  /* After netlink_init() and before create_helper() */
+  lease_make_duid(now);
 #endif
   
   if (daemon->port != 0)