Initial (untested!) commit of the AoE (ATA-over-Ethernet) driver for ZoL.
Still no logic, only empty functions in aoe.c though.
* Add a copy of iscsi_read_sysfs_value() as aoe_read_sysfs_value().
  Should probably go into libshare.c instead at some point.
* Add initial code to aoe_enable_share_one() and aoe_enable_share().
  Compiles, and should work without much problem.
* Add initial code to aoe_get_shareopts_cb(), aoe_get_shareopts()
  and aoe_validate_shareopts() that will retrieve and verify the
  options 'shelf'(int), 'slot'(int) and 'netif'(char *).
* Rename 'aoe_share_[st]' to the more correct 'aoe_shareopts_[st]'.
* Add aoe_retrieve_shares() (with code) to get a list of AoE shares.
  Called from aoe_disable_share() (code added).
From the path ('/sys/block/etherd!e9.0'), retrieve shelf (9) and slot (0).
* Use vbladed instead of vblade - it does the fork...
* Fix some lines > 80 chars.
Use a dedicated taskq for vdev_file

Originally, vdev_file used system_taskq. This would cause a deadlock,
especially on system with few CPUs. The reason is that the prefetcher
threads, which are on system_taskq, will sometimes be blocked waiting
for I/O to finish. If the prefetcher threads consume all the tasks in
system_taskq, the I/O cannot be served and thus results in a deadlock.

We fix this by creating a dedicated vdev_file_taskq for vdev_file I/O.

Signed-off-by: Chunwei Chen <tuxoko@gmail.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #2270