McIlroy holds on to win by one shot over Oosthuizen at Deutsche Bank