Destructively decrypts a packet (including inflating and MAC-verification,
if needed). On success, returns the decrypted packet. On failure,
returns an alert packet. These cases are distinguished by looking
at the is_alert attribute of the returned packet.