A polynomial time algorithm for exact maximum likelihood decoding of MIMO channels: a discrete geometric approach