allow arbitrary numbering of buses

Previously, there were a bunch of requirements. I think the buses needed
to be consecutively numbered from 1 to N with every child having a
number greater than its parent. Also, bus 1 was always the root. This
made it difficult to use arbitrary MATPOWER cases since it required a
bunch of manual work to get them to meet those restrictions. But no
more!