[topgen] Add scanmode to ip port

If IP uses its own sw controlled reset/clock, it needs scanmode input to
improve DFT coverage. Now topgen reads `scan` field from ip hjson and
add `scanmode_i` port accordingly.

See the example of spi_device
diff --git a/hw/top_earlgrey/doc/top_earlgrey.gen.hjson b/hw/top_earlgrey/doc/top_earlgrey.gen.hjson
index 6a1a682..c3d73c6 100644
--- a/hw/top_earlgrey/doc/top_earlgrey.gen.hjson
+++ b/hw/top_earlgrey/doc/top_earlgrey.gen.hjson
@@ -78,6 +78,7 @@
           width: 1
         }
       ]
+      scan: "false"
     }
     {
       name: gpio
@@ -104,6 +105,7 @@
           width: 32
         }
       ]
+      scan: "false"
     }
     {
       name: spi_device
@@ -164,6 +166,7 @@
           width: 1
         }
       ]
+      scan: "true"
     }
     {
       name: flash_ctrl
@@ -204,6 +207,7 @@
           width: 1
         }
       ]
+      scan: "false"
     }
     {
       name: rv_timer
@@ -224,6 +228,7 @@
           width: 1
         }
       ]
+      scan: "false"
     }
     {
       name: hmac
@@ -248,6 +253,7 @@
           width: 1
         }
       ]
+      scan: "false"
     }
     {
       name: rv_plic
@@ -267,6 +273,7 @@
       available_output_list: []
       available_inout_list: []
       interrupt_list: []
+      scan: "false"
     }
   ]
   memory: