Plumb through support for required_disk_space

This new property will allow a test case to pre-specify the amount
of available disk space required for the test to run.  ATF-based
test cases provide this via a require.diskspace property.

This is still unused.
Pass the work directory to check_reqs()

Extend the check_reqs() function to receive the directory the test case
is being run in.  Will later be used to implement the required_disk_space
support.
Add the mount_tmpfs function

Add a function to mount a tmpfs on a given directory.  This is strictly
for tests at this point, but I'm putting the code under the regular fs
module for simplicity (easier to share code among the tests that need it
and easier to test it).

As part of this, add a new unsupported_operation_error error type to the
fs module and a new UTILS_UNCONST macro.
Add the unmount function

Add a function to unmount a file system using either unmount(2) or
umount(8) depending on the underlying operating system.  Just borrow
the already-tested code from the testers module.
Add the free_disk_space function

This new function queries the available free space, in bytes, of a given
file system.
Enforce the required_disk_space requirement

Recognize the new required_disk_space metadata property (provided
as require.diskspace from ATF test programs) and enforce it in the
requirements check.
Merge branch 'add-required-disk-space'

Add support to specify the amount of physical disk space required
by a test case.  This is in the form of a new "required_disk_space"
metadata property, which can also be provided by ATF test cases as
"require.diskspace".