Fix a chicken and egg require problem.

It raises an exception anytime somebody requires this gem, including its
own tests.  The gem works on some systems and not others because
Dir.each does not have a deterministic order, and we were sensitive to
the order of the requires.

lib/zfs/nvvalue.rb Always require "array" before any of the other files.
Fix "zpool create ... [\"da8\" ... error in tests.

test/test_helper.rb
                Fix return value of available_disks.  Previously, it would
                return something like ["da0", {blah blah blah}], which would be
                passed to the "zpool create" command, causing pool creation to
                fail.  Now it returns a simple array of device names.
Fix pool_teardown failure in functional tests.

test/test_helper.rb
	Fix pool_teardown in the case that the pool creation succeeds,
	but @pool is nil due to a bug in the gem.  Previously,
	pool_teardown would not destroy the pool in that case.
Fix pool creation in test_zfs_property_lookups.

The second functional test would always fail because the first test
would create the global libzfs handle and the second test would not
refresh the handle after creating its pool.

dev_ffi/lib/zfs/global.rb
	Add a ZFS.reopen method that acquires a fresh libZFS handle.

dev_ffi/test/test_helper.rb
	Call ZFS.reopen after creating a new pool.