In some edge cases it appears that the registry can become out of sync with our
configuration. There are two different ways this is handled.
1) unitialized registry - write share config to /usr/local/etc/smb4_share.conf
This occurs during system dataset moves, and is imported into regsitry in its
entirety later on.
2) initialized registry - re-sync registry using sharing.smb.sync_registry
This PR makes etc.generate smb_share a wrapper around registry synchronization so
that we're more careful to add / remove shares as needed. A bug in parsing share
names for [HOMES] shares is also fixed.