Implement black list to workaround misreported physical sector sizes

This implements vdev_sector_check(). It alters the detected sector size
of any device listed on a black list of drives known to lie about their
physical sector sizes.

This is based on sg_simple4.c from sg3_utils and "6931570 Add flash
devices' VID/PID to disk table to advertising 4K physical sector size"
from Open Solaris.

The black list was created with the help of the freenode community.

Some notes:

1. The following drives both were confirmed to lie via reports in IRC
and they contain capacity information in their identifiers:

INTEL SSDSA2M080
INTEL SSDSA2M160
M4-CT256M4SSD2
WDC WD15EARS-00S
WDC WD20EARS-00M

The identifiers for different capacity models were extrapolated and
added under the assumption that those models also lie. Google was used
to verify that the extrapolated drive identifiers existed prior to their
inclusion.

2. The OCZ-VERTEX2 3.5 identifer applies to two drives that differ
solely in page size (and slightly in capacity). One uses 4096-byte pages
and the other uses 8192-byte pages. Both are set to use 8192-byte pages.
We could detect the page size by checking the capacity, but that would
unnecessarily complicate the code.

3. It is possible for updated drive firmware to correctly report the
sector size. There were reports of a few advanced format drives doing
that. One report stated that the vendor changed the identification
string while another was unclear on this. Both reports involved WDC
models.

4. Google was used to determine the size of pages in the listed flash
devices. Reports of 8192-byte pages took precedence over reports of
4096-byte pages.

5. Devices behind USB adapters can have their identification strings
altered. No attempt is made to correct for this. Two entries in the Open
Solaris black list that appear to have been altered by a USB adapter
were omitted.

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