Controllable Data Generation by Deep Learning: A Review