Maximum Likelihood Erasure Decoding of LDPC Codes: Pivoting Algorithms and Code Design