Canadian Taylor outplays Mickelson to win at Pebble Beach