If no drawing commands are called in an Asymptote script, no PDF output is created and no error is generated. This confuses the build process, which expect a target to exist after its commands were called.
With this change, the Python wrapper checks whether a PDF was actually written and throws an error otherwise.
Asymptote leaves a trail of partially cleaned-up temporary files behind it when PDFLaTeX is used.
With this changes, Asymptote files are compiled in a temporary directory outside the project root.