Extract interface for Runtime.add/removeShutdownHook.

  - Inspired by LOG4J2-658.

git-svn-id: https://svn.apache.org/repos/asf/logging/log4j/log4j2/trunk@1619652 13f79535-47bb-0310-9956-ffa450edef68
Update LoggerContext to use ShutdownRegistrationStrategy.

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