Australia's Ash Barty has shaken off courageous young American Amanda Anisimova to reach her first major final following a determined fightback in her French Open semi-final.