It's not sufficient nor required to use the vnode interlock when checking
if we are going to drop the last use count as the code in vputx() uses
atomic operations for both checking and decrementing the use code.
Apply the same method to vn_rele_async().
While here, remove vn_rele_inactive(), a wrapper around vrele() that didn't
add any value.
Also, the change required making vfs_refcount_release_if_not_last() public.
I've made vfs_refcount_acquire_if_not_zero() public as well.
They are in sys/refcount.h now. Maybe this is not the best header or maybe
the names need to drop "vfs" prefix.
Sponsored by Panzura.