allow retries when handler throws SerializationException

fixes #2384
I'm happy with the solution, the only change is that `MessageDeserializationException` needs to be public