merge YARN-735 from trunk. Make ApplicationAttemptId, ContainerId and NodeId immutable. Contributed by Jian He.