Use byte strings for struct packing rules when writing binary payloads.

Review Request #9476 — Created Jan. 10, 2018 and submitted — Latest diff uploaded

Review Board

Review Board 3.0.2 introduced a revised binary format for diff fragments
and review request page entry updates, which uses Python's struct to
pack numbers into bytes, given a packing rule string. Python 2.7.7 and
higher allow Unicode strings here, but older versions require byte
strings. This means that on old Python installs, diff fragments and
entry updates were broken for users.

This change simply switches those to using byte strings, ensuring the
widest compatibility. These work on all versions of Python 2.x and 3.x.

Unit tests pass.

Customer verified this fix on Python 2.7.5.