Improve error handling

 - If we get an error from a web server, log it. We need do nothing more.
 - If we don't have a third party binary, let the user know.
 - Use modals, not alerts.
 - Improve error messages. Not everyone will understand them.
 - Introduce isBinaryInstalled() for checking if binaries are available.
 - Introduce throwApplicationError() for handling errors.