Mount points

Handle better *actual* mount points - where you mount a volume in the path space of another volume.  For example, you can format an NTFS volume and mount it at `C:\Foo`.  Various operations can fail when you point a repository at a folder underneath that mount point and others fail at the mount point directly.

We cope with these by examining the canonical path of the folder in question and if the canonical path is a volume mount point (ie, `\??\Volume{...etc` then do not resolve it further.)

This is a different perspective on #2611.

It looks like it would be more readable to write this as `if (target_len)` followed by an inner `if (path_is_volume(target))`, as opposed to the if, else if structure we have now.