Make log4j-core optional for log4j-jdk.
Migrate more methods from Loader to LoaderUtil.
Fix circular class linkage in LoaderUtil.

  - As mentioned in the comments, LoaderUtil cannot reference PropertiesUtil in its static initialization block as this will cause mass errors everywhere.
Refactor log4j-jdk to make log4j-core optional.

  - Split into ApiLogger and CoreLogger.
  - LogManager.static takes care of determining which implementation is to be used.