qa_smoke_test: Rename to qa_smoketest

No functional changes.
build: Add a "build-epoch" system that triggers rebuilds

This is a mechanism to simply force a rebuild of a group of modules,
even when they didn't change.
fileutil: Add a convenient procedure to write JSON to streams

Not yet used, but it might be needed in the future.
jsonutil: Move JSON utility functions to jsonutil from fileutil

This makes the code more clean.