gui: Don't allow initialize to be called once already initialized.
No one should ever be calling gui.initialize except NVDA itself when it starts, but some add-ons do. Therefore, detect this and throw an exception, which will make the error obvious and prevent difficult-to-diagnose problems.
As part of this, terminate now drops the reference to mainFrame. We probably should have been doing this before anyway, though I don't think it really mattered previously.