SIGN IN SIGN UP

#18324: set_payload now correctly handles binary input.

This also backs out the previous fixes for for #14360, #1717, and #16564.
Those bugs were actually caused by the fact that set_payload didn't decode to
str, thus rendering the model inconsistent.  This fix does mean the data
processed by the encoder functions goes through an extra encode/decode cycle,
but it means the model is always consistent.  Future API updates will provide
a better way to encode payloads, which will bypass this minor de-optimization.

Tests by Vajrasky Kok.
R
R David Murray committed
00ae435deef434f471e39bea3f3ab3a3e3cd90fe
Parent: 0b16912