Group-theoretic algorithms for matrix multiplication