Stop having a module with the same name as one of the main exported functions.

This leads to much confusion in user code because the names are sometimes switched.
Add a way to keep the temporary source files around (for debug).