Hook up the full installation workflow to the UI. Caveats:
- if you're fast enough to click cancel when it's doing something other
  than downloading, it won't work right
- there's a race condition where sometimes we try to start install/validate
  before the downloaded file is fully saved to disk
- downloaded ZIP file isn't deleted after installation

Also fixes a few glitches in the validate/install code and a few formatting
issues that fell out of my last rebase.