Quantum Algorithms for Lattice Problems