Commit Briefs
flush imsg buffer before quitting
this ensures that all the pending messages, such as the two IMSG_QUIT, but limiting to them, are actually sent. This unbreaks save_session too.
fix certificate mismatch after load_previous_page and proxy
load_previous_page calls directly do_load_url, where the proxy reset happens in load_url.
initialize tabshead and proxylist early
after the re-exec diff, the configuration gets loaded *before* and then the proxy list is initialized. Thus once we start the UI the proxy list is always empty. Solve the headaches by using TAILQ_HEAD_INITIALIZER. Or, in theory we could also avoid the initialization at all, since globals vars should be zeroed.
re-exec the children processes
This way, they get their own new random address space.
fix two related bug
Don't crash when there's a certificate mismatch and after saving the cert, before choosing to persist it, the page gets redirected; also, don't repeat the "Certificate mismatch" after the first yes, if there's a redirect. Now when the user accept a certificate, is treated as temporary saved for the whole session.