Topology Optimization via Machine Learning and Deep Learning: A Review