Implement sgbufs

sgbufs are scatter-gather buffers that consist of pages that can
be manipulated directly or mapped itno the page tables on an as-needed
basis. This a new data structure that will be proposed for inclusion
into Illumos. Their main purpose is a replacement for slab allocation in
ZIO buffers.

Signed-off-by: Richard Yao <ryao@gentoo.org>
Update drive database

Add Corsair Force GS drive (obtained from drive_id)
Add Kingston HyperX 3K (obtained from drive_id)
Add OCZ Vertex 4 drive (obtained from drive_id)
Add Samsung SM843T enterprise drive (obtained from drive_id)
Add entries for additional sizes of Intel 320/330/335/520 series

Notes:

1. The drive identifer obtained for the Samsung SM843T was MZ7WD480. The
rest were extrapolated. The additional entries were checked with Google
to verify that such drives exist in the wild.

2. The additional entries for Intel drives were extrapolated from
existing entries. The additional entries were checked with Google to
verify that such drives exist in the wild.

Signed-off-by: Richard Yao <ryao@gentoo.org>
Stop doing runtime pointer modifications in additional autotools checks

c38367c73f592ca9729ba0d5e70b5e3bc67e0745 was meant to eliminate runtime
function pointer modifications in autotools checks because they were
prone to false negatives on kernels hardened by the PaX project.
Unfortunately, I missed the xattr_handler->get/set and
super_block->s_bdi autotools checks. Recent changes to PaX constified
xattr_handler->get/set, which lead me to discover this oversight.

Closes zfsonlinux/zfs#1433

Signed-off-by: Richard Yao <ryao@gentoo.org>