zfs: _major_ cleanup/rewrite of the module

We support more than one hook file for a reason...

Also it's not acceptable to have more than one SOURCE_DIRECTORY.