_sign_string private_key_file can now be file-like

Distribution._sign_string is now a little bit more flexible, allowing
the private_key_file to be a file-like object (or really anything with a
.read() method).