Allow device providers to be added later

Previously a master device_t took a snapshot of the provider list at
a single point in time, preventing providers being registered later.

Instead we allow providers to be registered whenever is convenient,
and start per-provider threads on demand.
netif: update to new shared ring signature