Brings the branch up to date after ~6 weeks of drift (51 commits).
The only real conflict was vehicle/Train.cpp, deleted here and modified
on master by 763a76d4, which added a dynamicbrake_pos entry to
GetTrainState. That line is re-applied in its new home,
vehicle/train/TrainState.cpp; the file deletion is kept.
utilities/uart.cpp and vehicle/Driver.cpp merged cleanly: master edited
function bodies, this branch only rewrote the Train.h include paths.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Consolidates platform-specific config-directory logic (APPDATA on Windows,
~/Library/Application Support on macOS, ~/.config on Linux) into a single
user_config_path(filename) function in utilities/utilities.{cpp,h}, removing
copy-pasted #ifdef blocks from application.cpp, editor/editorSettings.cpp,
input/{keyboard,gamepad,drivermouse,uart}input.cpp.