Spieth recovered from a rocky start in the final round to win the 146th Open Championship at Royal Birkdale.