Add common BusState

Implement and use a common device bus state.  The main side-effect is
that creating a bus and attaching it to a parent device are no longer
separate operations.  For legacy code we allow a NULL parent, but that
should go away eventually.

Also tweak creation code to veriry theat a device in on the right bus.

Signed-off-by: Paul Brook <paul@codesourcery.com>
diff --git a/hw/versatile_pci.c b/hw/versatile_pci.c
index 720742c..e454d49 100644
--- a/hw/versatile_pci.c
+++ b/hw/versatile_pci.c
@@ -118,9 +118,9 @@
     for (i = 0; i < 4; i++) {
         sysbus_init_irq(dev, &s->irq[i]);
     }
-    bus = pci_register_bus(pci_vpb_set_irq, pci_vpb_map_irq, s->irq,
+    bus = pci_register_bus(&dev->qdev, "pci",
+                           pci_vpb_set_irq, pci_vpb_map_irq, s->irq,
                            11 << 3, 4);
-    qdev_attach_child_bus(&dev->qdev, "pci", bus);
 
     /* ??? Register memory space.  */