[LOG4J2-322] Centralized reflective use of Reflection#getCallerClass and properly handled its instability in various versions of Java. In the process, generally refactored ThrowableProxy and ClassLoaderContextSelector to be somewhat cleaner. Hopefully more work can be done on this once Java 8's getCallerClass future is certain (in a good way).

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