Port the build pipeline and test harness to ES. Fix bug 1030309.

Yet to come: request-time dir listing rendering. Right now, you can't see folder listings, but files are fine.
Because of the order of the traversal, we know the outer folder exists, so there's no need to engage the heavier makedirs() machinery.