Handle invalid NULL at the end of a PDU

We've seen at least one provider that sends a NULL byte after the `short_message` field in a `deliver_sm` PDU.

This is a violation of the SMPP spec, but we should probably handle it more gracefully than assuming it's the start of an optional parameter and exploding because it's too short to be a 16-bit integer.
Not without a bunch of other work that's out of scope for this PR.