Further parallelize init when using CONFIG_THREAD_OPTIONROMS.

When optionrom threading is enabled, allow hardware init to run in
parallel with boot menu key press delay and with the smp detection.

Also, run qemu_cfg_port_probe() before ram_probe().
diff --git a/src/boot.c b/src/boot.c
index 19e16f3..36450f0 100644
--- a/src/boot.c
+++ b/src/boot.c
@@ -236,6 +236,7 @@
         ;
 
     printf("Select boot device:\n\n");
+    wait_threads();
 
     int subcount[ARRAY_SIZE(IPL.bev)];
     int menupos = 1;
@@ -306,13 +307,16 @@
 void
 boot_prep(void)
 {
-    if (! CONFIG_BOOT)
+    if (! CONFIG_BOOT) {
+        wait_threads();
         return;
+    }
 
     // XXX - show available drives?
 
     // Allow user to modify BCV/IPL order.
     interactive_bootmenu();
+    wait_threads();
 
     // Setup floppy boot order
     int override = IPL.bev[0].subchoice;