function prepares the vnode to be destroyed.
The preparation includes the cleaning of all file system specific data and
the removal from its mount point vnode list.
If the vnode has a
of zero, and its
flag is not set, it is moved to the head of the free list
as in most cases the vnode
is about to be reused, or its file system is being unmounted.
function takes an exclusively locked vnode, and returns with the vnode