sqs.message: Raising an exception in decode() should not abort parsing

Since AWS seems to return Body before ReceiptHandle, raising an exception in decode() will abort processing before the receipt handle is read.

This is a problem, because there's no way to dequeue the message without the handle.

Instead, wait to invoke decode() until parsing is finished.
Merge pull request #1835 from bodylabs/decode_sqs_message_after_parsing_finishes_2

Raising an exception in SQS message decode() should not abort parsing. Fixes #1835, #1833.