YARN-753. Added individual factory methods for all api protocol records and converted the records to be abstract classes. Contributed by Jian He.