Clustering and Classification via Cluster-Weighted Factor Analyzers