Better error message stacks

This will enable the following:

* When an error occurs in a dynamic module load, the error will be reported, along with the name of the module and the names of the modules loading that module.
* When there is a fetch error (eg 404) / locate error etc, the error will be reported with the name of the module and the names of all the module dependent on that module. This makes it possible to see which module is the root cause of the 404 request.

This resolves #233 and #217.