Jordan Spieth wins 146th Open Championship