merge YARN-737 from trunk. Throw some specific exceptions directly instead of wrapping them in YarnException. Contributed by Jian He.