duk_compile() + DUK_COMPILE_SHEBANG is not enough for modules because there is
a module function wrapper which offsets the shebang in the module source when
Duktape actually sees it.
* Rename prepare_sources.py to configure.py; the operation is similar to
autoconf ./configure so the association is useful.
* Rename make_dist.py to dist.py.
* Generate only one source set (combined or separate) for one run of
configure.py.
* Change dist.py to run configure.py three times to generate the default
source sets.
* Use an autodeleted temporary directory for preparing sources, which
removes some of the manual temporary file handling.
* Tolerate Proxy setup errors in case Proxy throws (= disabled).
* Fix bug in JX encoding error handling. Incorrect quote marks caused
value to be number coerced (+v) rather than string coerced (''+v).
* Fix function name in README.
* Rename duk_module_node_peval_file() to duk_module_node_peval_main() which
is less confusing (the function doesn't eval a file but expects the module
source on the value stack).
* Fix forward declaration of duk__push_module_object() which was missing the
"int main" argument.
* Avoid DUK_ERR_API_ERROR which is now removed; use DUK_ERR_TYPE_ERROR instead.
* Fix duk_safe_call() which was depending on Duktape 1.x API, now supports both
1.x and 2.x.
* Change typing from "int main" to "duk_bool_t main".
* Comment and C convention trivia.
* Fix typo in type name (duk_int -> duk_int_t)
* Fix value stack index usage for safe call, was using positive indices
* Add exitcode to test.c so that 'make test' errors out
* Add exitcode to other extras too where applicable
This loader has the following features:
* Application-provided callbacks for module resolution and loading
* Module caching based on resolved module ID
* Tolerates circular `require()` chains
* Supports `module.exports`, `module.loaded`, and `module.require`
* Supports `require.cache`
* Supports `__filename` (but not `__dirname`)