Gallacher upstages Tiger, Rory to win again in Dubai