message: Fix non-deterministic order in shortest-path-scheduler
  Summary:
  InitReadyNotReady relies on costs_ order to insert to unused_parameters_.
  Ref T28597.
  Test Plan: All tests pass.
  Reviewers: #tensorflow, #framework_ip_review_-_any_oss_or_third-party_code_use_has_been_approved, georgep
  Maniphest Tasks: T28597
diff: @@ -84,7 +84,7 @@ class SequenceCosts {
  if (my_map.count(cost) > 0) {
  my_map.at(cost).insert(inst);
  } else {
  - HloInstructionSet un_set;
  + ConstHloInstructionSet un_set;
  un_set.insert(inst);
  my_map.insert(std::make_pair(cost, std::move(un_set)));
  }
  @@ -298,12 +298,11 @@ class SequenceCosts {
  // not_ready_- list of instructions which can not be schedule yet.
  // Parameters are not on ready_, not_ready_. Having scheduled_ is sufficient
  // for them.
  - using HloInstructionSet = std::set<const HloInstruction*, HloPtrComparator>;
  - absl::flat_hash_map<const HloInstruction*, int64> costs_;
  + ConstHloInstructionMap<int64> costs_;
  HloInstructionSequence sequence_;
  absl::flat_hash_set<const HloInstruction*> scheduled_;
  - std::map<int64, HloInstructionSet> ready_;
  - std::map<int64, HloInstructionSet, std::greater<int64> > not_ready_;
  + std::map<int64, ConstHloInstructionSet> ready_;
  + std::map<int64, ConstHloInstructionSet, std::greater<int64> > not_ready_;
  std::vector<const HloInstruction*> unused_parameters_;
  };
  