Open disks O_EXCL to guard against corruption

O_EXCL takes a mandatory lock on block devices.

Replace the `--sudo` flag with a `--run-as $USER`
flag, and implement it for both Qemu and UML.

Neither Qemu nor UML have a flag to use O_EXCL, so
we open fds and pass them.

The UML implementation needs the patch at [1]
when --disks and --run-as are used together.

[1] http://mid.gmane.org/1374938607-25747-1-git-send-email-g2p.code@gmail.com