Build static

What it says
Fall back to no O_DIRECT

vhd_open() tries to use O_DIRECT by default. If the underlying device
does not support this, the open will fail. So, on an open error, we
should re-attempt the open with the VHD_OPEN_CACHED flag, which means
not to use O_DIRECT.
Merge branch 'add_vhd2raw' into add_vhd2raw_thr