merge -c 1459054 from trunk to branch-2 to fix YARN-297. Improve hashCode implementations for PB records. Contributed by Xuan Gong.