Properly extract errno from p9 rpc; fix incorrect mkdir error

mkdir /mnt/tmp/xxx would fail with the wrong errno (EEXIST)
because we could not properly get errno from the Plan 9 RPC.

I've fixed my version of go9p (github.com/rminnich/go9p) to
return Rerror strings in the form 'XXXX error message'
(space after XXXX is important) where XXXX is the hex-encoded
errno (this is how I did it for the original Linux 9p in 1998).
This format has the advantage of being all text; later implementations
(e.g. 9p2000.[ul]) break the rule and embed binary data in the string
and were a backward step IMHO.

I've fixed Akaros 9p parsing to look for a string at least 5 bytes long,
with the first 4 bytes being hex digits, and if that is the case to
set_errno using those digits.

I added get_errno to allow code to save the current errno value.

Finally, in the namec create case, I save errno as well as errstr
and restore them on the errpath.

mkdir /mnt/tmp/xxx now returns the correct errno/error message.

Signed-off-by: Ronald G. Minnich <rminnich@google.com>