By using the short path version of a file, we can
manage to move long paths to the trash.
1/ If the final short path is longer than what
`SHFileOperationW` can handle, it will fail
2/ Still not able to trash long path from another
drive, ie: trying to delete C:\temp\foo.txt
while the script is running from D:\trash.py
When I opted for two codebases for python2/python3,
Send2Trash used C modules and it was easier to just have two
packages. With the ctypes version, supporting both python
versions becomes trivial and it's much more convenient to
merge them back into a single codebase.
I've only tested this code on Linux. I've converted plat_osx and
plat_win, but they only work theoretically.