don't crash if rootspec is invalid
Let MD code provide boot disk information as spec string that can be
parsed by MI code. The format is the same as provided by an embedded
'root on <rootspec>' string in the config file. An embedded string
(other than a wildcard) still takes precedence.
If the boot argument "root" cannot be parsed as a device name, pass the
string untranslated to MI code. Due to limits in the boot argument parser
the string is terminated by whitespace.
fix iobuf setup, cleanup