if_vmove can fail if it lost a race and the vnet's already been moved. The callers (and their callers) can generally cope with this, but right now success is assumed. Plumb out the ENOENT from if_detach_internal if it happens so that the error's properly reported to userland.
This is a prereq to work that adds a busy mechanism to ifnet and an additional constraint to if_vmove that attempting to if_vmove on a detaching or in-motion (vnet-wise) ifnet will return EBUSY.