loci: generate less code and tests for virtual classes

Most uses of type_maps.class_is_inheritance_root are bugs. Generally you
actually want to know if a class is virtual. This is complicated somewhat by
lists also being virtual.
diff --git a/c_gen/c_code_gen.py b/c_gen/c_code_gen.py
index a6868ce..968d939 100644
--- a/c_gen/c_code_gen.py
+++ b/c_gen/c_code_gen.py
@@ -1011,7 +1011,7 @@
  ****************************************************************/
 """)
     for cls in of_g.standard_class_order:
-        if type_maps.class_is_inheritance_root(cls):
+        if type_maps.class_is_virtual(cls) and not loxi_utils.class_is_list(cls):
             continue
         out.write("\n/* Unified accessor functions for %s */\n" % cls)
         for m_name in of_g.ordered_members[cls]:
@@ -1690,8 +1690,6 @@
  ****************************************************************/
 """)
     for cls in of_g.standard_class_order:
-#        if type_maps.class_is_inheritance_root(cls):
-#            continue
         out.write("""
 /**
  * Delete an object of type %(cls)s_t
@@ -1749,8 +1747,8 @@
     out.write("/* DOCUMENTATION ONLY */\n")
 
     for cls in of_g.standard_class_order:
-        if type_maps.class_is_inheritance_root(cls):
-            pass # Check this
+        if type_maps.class_is_virtual(cls):
+            pass
 
         out.write("""
 /**