scsi: export request_queue retries via sysfs

The request's retries of scsi disk is default SD_MAX_RETRIES(5),
which is timeing consuming under some applications. Export it
to sysfs, which can be modified via:
	/sys/block/sdx/device/retries OR
	/sys/class/scsi_device/x:0:0:0/device/retries

Signed-off-by: Sha Zhengju <handai.szj@taobao.com>
scsi: set request's retries to be the value of request_queue

This patch assigns request_queue's rq_retries to request's retries,
which will be further assigned to scsi command later. In scsi EH handler,
it will affect the total completion time.

Signed-off-by: Sha Zhengju <handai.szj@taobao.com>
scsi: don't send timeout request to EH anymore

For timeout request, complete it directly without sending it to
LLD driver for processing. We increment the ref_count of request
which will prevent the request from releasing. Though this will
lead to memory leak to some extent, but can avoid system panic if
the LLD driver begin to handle the request again. Meanwhile, we
also don't free scsi_cmnd.

Signed-off-by: Sha Zhengju <handai.szj@taobao.com>
scsi: add timeout_shortcut to enable/disable the hacky request timeout path

Default we enable the hacky request timeout path, but we can choose to
disable it in runtime. It can be modified via:
        /sys/block/sdx/device/timeout_shortcut OR
        /sys/class/scsi_device/x:0:0:0/device/timeout_shortcut

Signed-off-by: Sha Zhengju <handai.szj@taobao.com>
Merge pull request #51 from shazj99/scsi_timeout

Thanks. Applied.