This commit provides a fix for `remove_directory_trailing_slashes`
test case on Windows. It adds a missing mapping between the following
WinAPI error code and WASI error:
```
ERROR_DIRECTORY => __WASI_ENOTDIR
```
where `ERROR_DIRECTORY` is thrown when the directory name is invalid.
* Move path_get outside of sys module
* Add implementation of readlinkat
* Clean up path_open; use OpenOptions as much as possible
* Enable close_preopen test
* Implement path_create_directory; fix path_open
* Refactor path concatenation onto a descriptor
* Implement path_remove_directory
* Implement path_unlink_file
* Rewrite path_open using specific access mask
* Fix error mapping when unlinking file
* Fix readlinkat to pass nofollow_errors testcase
* Clean up winerror to WASI conversion
* Spoof creating dangling symlinks on windows (hacky!)
* Add positive testcase for readlink
* Implement path_readlink (for nonzero buffers for now)
* Clean up
* Add Symlink struct immitating *nix symlink
* Fix path_readlink
* Augment interesting_paths testcase with trailing slashes example
* Encapsulate path_get return value as PathGet struct
* Remove dangling symlink emulation
* Extract dangling symlinks into its own testcase
This way, we can re-enable nofollow_errors testcase
on Windows also.
* Return __WASI_ENOTCAPABLE if user lacks perms to symlink
* Add partial impl of determine_type_rights fn
* Add draft of fd_fdstat_get hostcall
* Add writev wrapper for writing IoVec in RawHandle
* Move IoVec and writev to separate helper crate
* Add Win error handling
Clean up closing and duplicating RawHandle
* Wrap Win file type result
* Add draft impl of fd_close and fd_read
* Refactor getting file access rights
* Remove winapi from the main Cargo.toml
* Add very rough draft of open_path (very incomplete)
* Clean up WinError with macro
* Ignore dir handle in openat if path absolute
* Decode oflags and advance open_path hostcall
* Clean up AccessRight and FlagsAndAttributes flags
* Implement path_get (without symlink expansion yet!)
* Add ShareMode and fix path_get for nested paths
* Add some error mappings between Win and WASI
* Clean up fdflags conversions
* Fix sharing violation when calling openat at '.'
* Apply Alex's fix of using ManuallyDrop instead forget
* Clean up
* Explicitly specify workspace to avoid comp errors at tests