What are Generative Adversarial Networks (GANs) and how do they work?