Make code py3 compatible

As a side-effect, this makes us use unicode, which will be useful for
non-ascii characters in aythor and story names down the line.
Handle non-ascii author names
Add some initial unit tests

Just to prove that my initial changes work.