Replace recursive implementation with a forward loop in Utility::MkDirP()

That way we always move into the tree, but not start in the deepest
level and may limit the tree level too in the future, if required.

Solves the Win32 implementation by moving the general mkdir() call into
Utility::MkDir().

refs #6328
Replace existing mkdir() calls with Utility::MkDir()

refs #6328