App placement prefers DEAs with more available memory

Also extract private EligibleDeaAdvertisementFilter class

[Closes #50684677]