fix a deserialization overflow edge case
A specially-constructed BlockTransactionsRequest can cause offset
to wrap in deserialization. In the current code, there is not any way this could be dangerous; but disallowing it reduces the potential for future surprises.