Lattice coding and decoding achieve the optimal diversity-multiplexing tradeoff of MIMO channels