Split out zfs_list into util library

Add some nose tests that stub the zfs command
Add ZfsPermissionError exception
Fix can_recursive_snapshot

Test and fix a number of failure modes from the original ksh version of
the zfsautosnaphost regarding subsets and recursive snapshotting
Move logging.config to main
Use new zfs.util module in get_userprop_datasets

Remove direct calls to subprocess module, hand off to zfs.utils.zfs_list

Do a quick and dirty test of functionality
test narrow_recursive_filesystems

The narrow recursive filesystems function had indentation problems, and
also wasn't doing substring matches in the best possible way. Replace
regex matches with actual list element comparisons.

Add more tests for get_userprop_datasets