Implement a bytes_as_strings pickler option

This is needed for ZODB, where we want to produce smaller pickles (every
Persistent object reference stores an 8-byte-long binary string).  We
also want noload() to be able to see these byte strings (currently
they're hidden by noload_reduce(), which doesn't handle the
codecs._encode calls normally produced by Python 3 pickles).

The C module (both of them) currently lacks implementation for this.