refactor ClusterInfoService into InternalClusterInfoService and
ClusterInfoService interface so it can be injected into BalancedShardsAllocator