Merging from trunk to branch-2 to fix YARN-742.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1489601 13f79535-47bb-0310-9956-ffa450edef68
YARN-756. Remnants from moving Preemption* records to yarn.api where they really belong. Contributed by Jian He.
svn merge --ignore-ancestry -c 1489614 ../../trunk/


git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1489616 13f79535-47bb-0310-9956-ffa450edef68
svn merge -c 1489634 Merging from trunk to branch-2 to fix HDFS-4840.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1489642 13f79535-47bb-0310-9956-ffa450edef68
YARN-753. Added individual factory methods for all api protocol records and converted the records to be abstract classes. Contributed by Jian He.
svn merge --ignore-ancestry -c 1489644 ../../trunk/


git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1489647 13f79535-47bb-0310-9956-ffa450edef68