Australia’s Cameron Smith wins British Open