Do not clear good TLVs when a error occurs decoding.

In change Ief74d0e4f4f28dff7a435e9dab1fab1ca1d9bfaf with a sha1 of
e81932e92a773538e1ad1ad1d4bfd8f241860c8d it seemed like a good idea
to throw away all TLV's on errors. In retrospect that was probably
not a good idea. For example on the MTN Ghana SIM the error
occurs because of some 0 pad bytes at the end, all of the actual
TLV's are good, so throwing away everything is unreasonable. Instead
accepting what is valid seems a better approach.

Also, add a couple debug lines on error paths.

Change-Id: I4add0c9cd242f46e0ef8700229d0ec755b9e4c4c
2 files changed