Add VQGAN
# What does this PR do?

Adds the VQGAN model, first step for adding the Dallemega model in transformers. 

- This model is different from most the models available in `Transformers`, it's an U-Net like encoder-decoder architecture with vector quantizer bottleneck.
-  This is only the generator part of the GAN, intended only for inference.
- It does not have common transformer style embeddings, blocks and other attributes.
- Currently it does not support `output_hidden_states` and `output_attentions`, since this is complex architecture and it's not  clear which `hidden_states` to return. Would love to hear your thoughts if we should support this.
@patil-suraj note that you can use the current main version of diffusers as a reference of how the code should look like and you can use the conversion script to covert the official weights<|||||>Taking over this PR 