Koepka holds off Scheffler, Hovland to win PGA Championship