Runs the main loop until main_quit is called.
You can nest calls to main. In that case main_quit will make the innermost invocation of the main loop return.