Make RustAutoComplete intelligently handle unsaved files

Re-add encoding='utf-8'
Add determine_save_dir(view):
- Try to save temp files next to saved files
- Try to save unsaved files in window-folder/src
- If no folder, try to save in the most common dir of open rust files