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.
I'm abit confused why these can't be generators? (and thus use `chain` here).
I feel like these will only be run through once.