Communication-Avoiding Krylov Subspace Methods In Theory And Practice