Data Sharing with Generative Adversarial Networks: From Theory to Practice