ProteinGAN: A generative adversarial network that generates functional protein sequences