zfs headers should be C++ compatible
This enables ZFS to be used directly in C++ programs. The most notable current example is FreeBSD's zfsd, which is a ZFS fault-management daemon (currently exists as a project branch, but has been in use for some time).
The change should include a mechanism to ensure that C++ compatibility is retained over time. To that end, a C++ file should be added to ztest.