This allows for shared locks in some cases where we are manipulating the object reference count.
It would be possible for non-vnode objects to actually atomically drop the reference count with no lock held as long as it is above 2. Callers that expect stable reference counts with the write lock held only require it stay stable below 2. The relationship between the object and vnode reference counts make this much more complex for vnodes. I would like to refactor this so we only bump the vnode ref for the first object ref but it requires other changes to vfs.