CAR-1442: Allow opening read-only VDIs without O_DIRECT

Teach tap-ctl open the "-D" command-line argument.  When "-D" is given,
read-only VHDs are opened without O_DIRECT.

Opening VDIs without O_DIRECT allows the kernel's page to be used, potentially
improving performance.  To prevent the kernel doing readahead and negating some
of the performance benefits of caching, tell the kernel that access to the VDI
fd is random (this makes it not do prefetching, just like if O_DIRECT were
used).

Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reviewed-by: Thanos Makatos <thanos.makatos@citrix.com>

GitHub: closes #80 on xapi-project/blktap
CA-135194: use better names for XenStore watch tokens

helps debugging

Signed-off-by: Thanos Makatos <thanos.makatos@citrix.com>
Reviewed-by: Chandrika Srinivasan <chandrika.srinivasan@citrix.com>

GitHub: closes #82 on xapi-project/blktap
CA-135194: fix resource clean up in error path

Signed-off-by: Thanos Makatos <thanos.makatos@citrix.com>
Reviewed-by: Chandrika Srinivasan <chandrika.srinivasan@citrix.com>

GitHub: closes #82 on xapi-project/blktap
CA-94713: parametrize request timeout

Imported-by: Chandrika Srinivasan <chandrika.srinivasan@citrix.com>
(cherry picked from commit 91478403e0eeae3c28d4cc411fcb727e6b74c44e)

Conflicts:

	control/tap-ctl.c