Make bus capable to be energized by several sources

This is needed to cover the case of DC BAT BUS, which might be energized
by BAT 1 and BAT 2 simultaneously.
Move dev IDs from `ElectricSystem` to package object

…which is a more appropriate place for them.
Increase the power of ConditionEvaluator

The `ConditionEvaluator` class was only able to associate actions with
boolean conditions. This is a poor feature since most of the times the
conditions should be expressed not in terms of met/not-met but in terms
of “condition `C` mets with evaluation result `E`”, being `E` an input
to the action associated with the watcher. With his approach, it’s
possible to represent more sophisticated conditions as “when BUS `X` is
powered on by supply `Y`, then power this contactor `C` with supply
`Y`”.
Improve condition evaluation even more

Actually `Condition` objects that evaluate on the same type can be
combined together in the same watcher comprising a responsibility chain.
The first one to evaluate triggers its associated action. If none of
them evaluates, a not-met action is triggered. This may be combined
in different ways to have many different ways to check conditions and
react agains them.
Add batteries (partially), DC BAT BUS and HOT BUSes
Add DC ESS BUS and surroundings
Keep supply chain in device state

Instead of storing the device that is supplying the power on bus,
contactor, and TR states, it’s better to store the whole supply chain,
i.e., the sequence of devices that brings the power to the device. That
makes possible to create more sophisticated conditions that check not
only if a element is powered, but the source of that power as well.