Adam Hadwin edges Patrick Cantlay to win Valspar Championship