Par(allel)K(rylov): An MPI, template c++ library for solving Krylov subspace algorithms on distributed memory systems