Logging clean-up as well as some string performance issues.

  - Using parametrized status logger.
  - Single character strings can almost always be replaced with chars.
  - Fixed a couple uses of System.err to use the appropriate logger.

git-svn-id: https://svn.apache.org/repos/asf/logging/log4j/log4j2/trunk@1580535 13f79535-47bb-0310-9956-ffa450edef68
Fix up circular references in LoggerContext.

  - This doesn't fix LOG4J2-570, but it does help in related memory 
  leaks.
  - Using a PhantomReference to hold the shutdown thread (which can 
  be enqueue()'d upon stopping).
  - No need to call Runtime.getRuntime().removeShutdownHook() when 
  it's already running!
  - Converted shutdown hook to a static inner class implementing 
  Runnable (as per the recommended practice of not extending Thread).
  - Also cleaned up some logging statements here.

git-svn-id: https://svn.apache.org/repos/asf/logging/log4j/log4j2/trunk@1580542 13f79535-47bb-0310-9956-ffa450edef68