CRATE: Accurate and efficient clustering-based nonlinear analysis of heterogeneous materials through computational homogenization