Currently, when nd6_dad_start() is called with a delay of 0 we send a
NS in the context of the caller. The places restrictions on the locks
the caller is allowed to hold. However, there's no good reason to
transmit the NS synchronously, so allow the first NS to always be
transmitted by the callout: the latent transmission doesn't matter
for the purposes of DAD. When nd6_dad_start() is called with a delay
of 0, we pass a "ticks" value of 0 to callout_reset(9), which schedules
the callout for the next tick.
Exploit the new behaviour to fix the IPv6 address list locking in
pfxlist_onlink_check().