Federer wins record 20th Grand Slam