data*.js files' tests are exported as JS strings

This tries to answer #229, and incidentally accomplishes the same thing as #233.
A 10-line function has been added to the end of each `data*.js` script, which converts all the test.exec properties (that is, the test functions) into strings containing just the function body, so that they can be analysed by external testing scripts, or recreated using the Function() constructor.

Essentially, this takes functionality already present in `build.js`, and adds them to the `data*.js` files to give them a slightly more usable API. While there's a maintainability hit in having the same function duplicated in each file, I think it's acceptable.