Edge cases now handled:
1. Unclosed quotes: "~/My <TAB> - completes paths inside quotes
2. Backslash escapes: ~/My\ <TAB> - unescapes before completing
3. Closed quotes: "~/My Files/"<TAB> - works correctly
Key changes:
- extract_word() now tracks backslash escapes (prev_was_backslash)
- is_path_prefix() strips leading quotes before checking
- Added strip_quotes() and unescape_path() helper methods
- complete() now:
- Strips quotes and unescapes paths before calling FilenameCompleter
- Re-wraps completions in quotes or escapes as appropriate
- Preserves user's quoting style (double vs single quotes)
- Uses backslash escapes if user was already using them
Tests added:
- test_actual_completion_with_quotes - verifies all three edge cases