Fixing GAN optimization through competitive gradient descent