Zach Johnson wins British Open