Accursed power loss!

1% for the short jumper cables, 5% for the long heavy-duty cables. No
loss on the non-spawning debug Shiny Cable.

Also, the BFS traversal is now encapsulated in a simple local method,
with a couple of lambda visitors in the charge_ and discharge_battery
methods to do the right job.

Also-also, left in some debug messages for making sure the values are
actually being calculated as expected.