Improve error handling for installation failures.

Finch will now:

* Create a temporary file "var/db/finch/installing…". So any platform-specific PHP-GUI extension can know when to display an appropriate GUI message or block presentation of other GUI functions whilst Finch is still installing.

* Detect if installation was interrupted unexpectedly. For example, if the host system was rebooted during installation.

* Log a plain-text failure reason.

* Try to send the user a notification email with log file attachment.

Note: A failed installation may occur if the host machine lost it's internet connectivity part-way through. The machine was rebooted by user, or accidentally reset.