Fixing a logical error when ordering BMC servers

There was an internal inconsistency in our logic that was probably introduced by a refactoring. One area of code was treating a data structure as being memory keyed with an array of CPUs while the other was doing the inverse. This fix addresses that and also adds some new data to the mock objects to help detect this in the future.