Missing json import in uploader
Make uploader use all json

Previously, we were serializing sub-objects (and sub-sub-objects) into
a string, before shoving them into the json object that gets passed
around the message queue. There's no particular need to do that, so
it's kind of dumb extra work we're doing in a couple places. This fixes
that by just passing around dicts serialized as json. Much cleaner, and
easier to read the contents while debugging, too!
Fix syntax error in reporter
Don't blow away old archives in reporter

Instead, save versioned copies to timestamped directories
Add unit test support to reporter

This avoids actually trying uploads to datazilla, which would not be
available during unit tests. Perhaps one day we'll mock it up, instead.
However, today is not that day.
Fix parameter name to handle in reporter

The metadata comes in named "metadata" instead of "metadata_b64" (even
though it's base64 encoded the whole time).