Initial stab at adding SG_IO support

Note: this requires kernel changes to compile.
Added necessary kernel patches for supporting SG_IO

for block drivers using make_request_fn
Pass the block device to bio_map_user_iov
Set the block queue bounce limit
Add a bunch of debug code to try to figure out why SG_IO is not working
removed unused is_sg_io element from struct sop_request

and fixed related comments.
From: Chayan Biswas

Fix calculation of data direction in sop_map_user_iov()

This makes SG_IO work on unaligned buffers.
Remove excess debug code from SG_IO code path
Remove timeout on SG_IO commands upon completion
Handle timeout values from SGIO call
cleanup checkpatch comlaints 1
cleanup checkpatch comlaints 2
cleanup checkpatch comlaints 3
cleanup checkpatch comlaints 4
cleanup checkpatch comlaints 5
cleanup checkpatch comlaints 7
cleanup checkpatch comlaints 8
cleanup checkpatch comlaints 9
cleanup checkpatch comlaints 10
cleanup checkpatch comlaints 11