Dustin Johnson cards eagle at Shell