Stewart battles rain to win Pepsi 400 at Daytona