devnet_filldir should only call sdev_cleandir on directories

sdev_cleandir has an assert that it should only be called on
directories, though if it isn't, it generally behaves sanely. In this
case, devnet_filldir was unconditionally calling sdev_cleandir, even
when it wasn't a directory.
Enforce the setting of required properties on overlay creation

Overlay devices and their plugins require certain properties where it's
not reasonable to have default values. This adds a -p to dladm
create-overlay for specifying these and adds a bunch of ioctl's and
plumbing.