Add signatures for new io functions
Move rm operation implementation to ior.c
Improve quality of ior_rm function body
Add unit tests template for io operations
Add several file/directory removal unit-tests
Move mkfile implementation to iop.c
Add unit-tests for mkfile
Rename arg3.{ parent -> process_parents }
Move mkdir implementation to iop.c
Disable test_fails_if_file_exists only on *nix
Move directory changing for iop test to suit
Add unit-tests for mkdir
Use until_first() in iop_mkdir()

Instead of replicating the body of until_first().
Move rmdir() implementation iop.c
Add unit-tests for iop_rmdir()
Move ln operation implementation to iop.c
Use break_atr() in iop_ln()

Also add missing include for NULL (though it's also defined in some
other headers too).
Rename buf to base_dir

"buf" is not the best name for a variable.
Move is_win_symlink() to utils/fs.c unit
Extract is_symlink() function in utils/fs.c

Extracted mostly from the body of check_link_is_dir() function.