Refactor VCN route selection with UnderlyingNetworkEvaluator

This is a preparation CL that allows followup CLs to add network
metric monitors. This CL does a pure refactoring without
introducing any behavior changes

Specific changes include:
- UnderlyingNetworkEvaluator now encapsulates the calculation of
  mPriorityClass
- mIsSelected is moved from UnderlyingNetworkRecord to
  UnderlyingNetworkEvaluator
- UnderlyingNetworkListener is simplified by moving the network
  candidate out to the UnderlyingNetworkController
- NetworkPriorityClassifier now takes a "isSelected" boolean
  instead of the currently selected network candidate

Bug: 282996138
Bug: 315858972
Test: atest FrameworksVcnTests, CtsVcnTestCases
Change-Id: I8461a68f1c4260b253d84d3efed2b09c41116656
10 files changed