Replace log4j and commons-logging with slf4j

commons-logging has known classloading problems and not every downstream user wants to use log4j. Better to use slf4j for logging abstraction and let the user decide where to log.