Pan-cancer single cell RNA-seq uncovers recurring programs of cellular heterogeneity