IB/srp, FRWR: Add support for non-contiguous memory regions

Discontigous memory region support has been tested by comparing the
output of the following commands:
$ dev=/dev/sdb
$ ./discontiguous-io -o 2 -l 512 $dev | md5sum
$ ./discontiguous-io -o 2 -l 512 -s $dev | md5sum
and also by verifying the output of the following commands:
$ date >date
$ dd if=/dev/zero of=$dev bs=512 count=1
$ dd if=$dev bs=512 count=1 | md5sum
$ { cat date; dd if=/dev/zero bs=512 count=1; } | ./discontiguous-io -w -l 512 $dev
$ dd if=$dev bs=512 count=1 | md5sum
$ dd if=/dev/zero of=$dev bs=512 count=1
$ { cat date; dd if=/dev/zero bs=512 count=1; } | ./discontiguous-io -s -w -l 512 $dev
$ dd if=$dev bs=512 count=1 | md5sum
It has also been verified with ibdump that the above commands trigger
a sequence of 128 RDMA writes or reads respectively.

Other changes included in this patch:
- One FRWR pool per connection instead of per target to maximize scalability.
- Add the "register_always" kernel module parameter, useful for testing FRWR.
- Removed the "fast_reg" sysfs attribute.
- Removed the "use_fast_reg" login parameter.
v2.0.22
Makefile: Rework OFED support
IB/srp: Modify indentation
IB/srp: Rename FRWR into FR
IB/srp: Rename fast-registration related data structures and functions
IB/srp: Remove two pairs of braces
IB/srp: kernel-doc updates
IB/srp: Fix a RHEL 6 compiler warning
IB/srp: Simplify fast registration code
IB/srp: Rename three struct members
IB/srp: One FMR pool per connection
IB/srp: Align with upstream v3.16 kernel
v2.0.23
IB/srp: Align with upstream v3.16 kernel
scsi_transport_srp: Fix fast_io_fail_tmo=dev_loss_tmo=off behavior
v2.0.24
IB/srp: Use P_Key cache for P_Key lookups
IB/srp: Make CM timeout depend on subnet timeout
IB/srp: Store pkey also in srp_target_port