First stuff.  Not very good.
Cleans up some stuff.
Cleaning up
Logging: makes the log work as a context manager.

TEST=unittest (such as it is) passes
Logging: Fixed bugs, enhanced first test, does NOT pass tests.

Creating a new file wasn't resetting the counters -- fixed.

Making the first test more sophisticated.  json.loads is complaining
about extra data so things need to be formatted differently.  Testing is
not yet working.

Outlined the tests for logging.
Logging: Fixes first unittest.

Makes JSON produced by Log legal (validated with jsonlint.com).  Now, it
passes the first test!

TESTING=first unittest -- passes!
Logging: Fills out the checking for the first test.

PASSES test.
Logging: Calculates sizes better.

Being more careful about size calculations, not opening new file when
closing old one (waiting until logging to a closed file), moves commas
and such around so that the output is prettier.  Passes unittest.
Logging: Waits to open logfile until first log is made.

TESTING=first unittest.
Logging: Allows short files.

I was putting way too much effort trying to add new logs to a previous,
partially-filled, logfile.  Here, I just gave up -- having a partial
logfile is no big deal and there was way too much code to add to an old
file.  Keep It Simple, Stupid.

TESTING=Two, count 'em, two unit tests.  Both passing.
Logging: Getting better but not there, yet.
Logging: Made the byte counts consistent.
Logging: Actually makes, you know, basic math work.

TESTING=PASSES ALL UNITTESTS!
Logging: Passes pep8 and pyflakes.
Logging: Adds block comments for the files.

TESTS=unittests, pep8, pyflakes -- all pass.
Logging: Still more cleanup.

TEST=unittest, pep8, pyflakes
First stuff.  Not very good.
Cleans up some stuff.
Cleaning up
Logging: makes the log work as a context manager.

TEST=unittest (such as it is) passes