Create an API to take and drop the topo lock needed to manage
the newbus tree (bus_topo_lock() and bus_topo_unlock()). Add
bus_topo_mtx() to return this mutext (current Giant but soon to
be an SX lock I think).
(also seems to have the following mixed in, will separate out shortly
push down Giant into mii_attach() and use new bus_topo functions.
Several drivers do a deferred attach of the mii bus and takeout and drop Giant
to do that. This is undesirable, so push the giant use down into mii where we
can more easily change it.)
Sponsored by: Netflix