YARN-2998. Abstract out scheduler independent PlanFollower components. (Anubhav Dhoot via kasha)

(cherry picked from commit e7257acd8a7adb74d81cd1d009d4a99f023ed844)