Building Expressive and Tractable Probabilistic Generative Models: A Review