Move abstract logging

This branch moves AbstractLogging from com.typesafe.scalalogging.{log4j,slf4j}.AbstractLogging up a level to com.typesafe.scalalogging.AbstractLogging.  This allows one to abstract over the logging implementation.

Since AbstractLogging returns a logger, I needed to unify the log4j and sl4fj loggers so added AbstractLogger.  Due to restrictions in Scala 2.10 macros, I needed to define the AbstractLogger methods to have the macros work.