Add unified caller class utility class.

  - Based on ReflectiveCallerClassUtility.
  - Adds getCallerClass(String) which is primarily used by ClassLoaderContextSelector.
  - Adds getCurrentStackTrace() which is ported from ThrowableProxy.
  - Adds a rather complete implementation of getCallerClass(int) based on Throwable.
  - Unit tests.
  - Updates benchmark tests accordingly.
  - Will also help us maintain future compatibility with JDK 9 and beyond (hooray for tests!)
Use ReflectionUtil.getCurrentStackTrace()
Use ReflectionUtil.getCallerClass(String)
Remove old caller class utility.
Prefer classes over names in LogManager.

  - Allows for specifying the ClassLoader in getContext().
  - Updated to use ReflectionUtil instead of getClassName(int).
  - Use Class instead of String methods where possible.
  - Refactor commonly repeated calls to LogManager.class.getName() into static field.
Fix compiler warning: exception not thrown.
Statement does not need to be nested.
Format.
Fix compiler warning: exception not thrown.
Statement does not need to be nested.
Format.
Statement does not need to be nested.
Format.
Statement does not need to be nested.
Format.
LOG4J2-829 fix test so that it works in all time zones
[LOG4J2-813] MarkerManager Log4jMarker.hasParents() returns opposite of
correct result.
[LOG4J2-813] MarkerManager Log4jMarker.hasParents() returns opposite of
correct result.
LOG4J2-829 fix more tests to work in non-JST time zones
LOG4J2-829 replace magic number with Calendar to generate timestamp