Mark everything in gh-export as unicode explicitly.

This should already have worked all right, as requests and the
PyGithub lib were both smart enough to sense the charset and give back
unicode (yay), but just to make it harder to screw up in the future.
Commit comments are making it in, but top-level are wrong.

In that they come after the first diff header line.

To fix this requires the long put off canvas refactor, so saving
before.
Refactor composition into a class for gh export.

This makes it easier to keep track of "top matter," the comments that
we want to insert before anything else, and means that we only need
append operations after that.