Before this change file system specific copy_file_range method was only
called when both the source and the destination files reside on the same
file system.
Relax that requirement and call file system specific copy_file_range when
both files are on the same file system _type_, even if they are under
separate mount points.
Simplify some code by not calling vn_generic_copy_file_range() internally
and just return EOPNOTSUPP that would tell vn_copy_file_range() to call
vn_generic_copy_file_range() in response to that error.
Call the vn_generic_copy_file_range() also on the EXDEV error.
Signed-off-by: Pawel Jakub Dawidek <pjd@FreeBSD.org>