hammer2 - Stabilization pass
* Fix incorrect ip->meta.iparent initializations that were messing up
NFS. These fixes are primarily in the hammer2_inode_create() path.
The 'dip' passed in is not the correct inode to retrieve ip->meta.inum
from for the new inode's iparent. Pass a second inode indicating the
proper parent directory linkage for iparent.
* Remove ip->pip entirely. Since the actual file/directory inodes are
no longer heirarchical this field only creates confusion. The two
places where we really need it can simply use ip->meta.iparent.
Also clean-out a considerable amount of code that previously dealt with
ip->pip linkages and adjustments.
* Do not try to drop data on a 1->0 transition failure, this can race
increments and cause the data to be improperly dropped.
* Do not try to drop data on lockcnt == 0 unless persist_refs is also 0.
Fixes several SMP races where chain->data was being lost improperly.
* Cleanup the APIs for recent changes in how inodes work.
* Now passes buildworld test with /usr/src and /usr/obj mounted with NFS
from a hammer2 volume.