Advances in Black-Box VI: Normalizing Flows, Importance Weighting, and Optimization