Change download-related facilities to use coroutine infrastructure
utils.js: Added the function get_temporary_file to avoid code duplication.
utils.js: Added create_info_panel for creating information panels like
the one shown for downloads.
download_as_temporary was changed to be a coroutine, and properly
registers with the download manager.
File name suggestion facilities were moved from save.js to
suggest-file-name.js.
process.js: The asynchronous process launching functions were changed
to be coroutines.
save.js: save_uri, save_document_as_text, and save_document_complete
replace download_uri_internal. Interactive commands were moved to
element.js and changed to be element operations.
element.js: Many element operations now use an info panel.