Fixed multiple cases in which a non-constact string variable was used as a format string for fmt.Errorf.
This commit copies over the relevant zpay32 decoding logic to ensure that our prior migrations aren't affected by upcoming changes to the zpay32 package, most notably changes to the default final_cltv_expiry and expiry values.