Drop class: Pass exceptions to logger; Fix retrieve() bug

See commit messages for details.
There's also this InvalidKeyException comment that has been changed - there's no TODO if this exception is part of the normal decryption routine, imho
okay, in theory, one could write the plainJson even in the first loop, as the inner loop becomes stopped as soon as one decryption was successful. Still, it's a thing that's not always obvious to everyone, so this change should be okay as-is.