Pluggable policy to scale down Node Managers.
- Defined a top level interface to that tells which node managers to scale down.
- Added "NMs running least AMs" implementation of the policy.
  - This caches YARN scheduler's "view" of NMs (SchedulerNode) as the NMs HB to RM.
  - When a scale down operation requests for a list of nodes, it prepares the list by sorting the cached SchedulerNodes:
     - first on the # of AMs
     - on the # of running containers if two nodes are running equal number of AMs
- The "/api/cluster/flexdown" REST call utilizes the policy to figure out which NMs to scale down.