vfs: checks whether the mount's unmounting flag is already set.

* thanks to Ingo for suggesting the idea, quoting him:
"by holding sVnodeLock read-locked, get_mount() ensures that fs_unmount() can't
process the nodes. If it is already past that point, the root node check
(not NULL, not busy, ref count > 0) is supposed to detect that. But it doesn't
look like this can work. fs_unmount() doesn't set the root node to NULL (the
root node field is NULL only during a short period in fs_mount()), but it just
frees the nodes after releasing sVnodeLock. So the not busy and ref count > 0
checks could already access freed memory".
* tested OK, this fixes #10522.
* replaced mount->root_vnode by the local variable with the same value.
Expander: style fixes, no functional change intended
Expander: replace string manip with asprintf()
Expander: Check Window()->Lock() return value
Expander: Check asprintf() return value
Expander: Replace min_c() and max_c()

...with std::min() and std::max()