Teach MAKE_{Encode,Decode}Word() about more special characters
Teach SYSTEM_ShellEscape() about more special characters
proj: Don't change blanks to spaces when caching project variables
Cache project variables to output directory

- Use for subsequent runs instead of recomputing
- Significant speedup, especially on Windows
- `make clean` or delete the cache file to recompute next time