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/