Separate macro code for Scala 2.10 vs 2.11.
Use whitebox macros for reflective logging.

We have no actual _need_ for the features provided by whitebox macros,
but they result in better bytecode in the case where we do an is-enabled
check.

When we use blackbox macros, the compiler pushes and the pops a UNIT
on the stack after the conditional, which is probably enough to
substantially increase the cost of a disabled log statement. This is
likely because the compiler skipping some optimization for blackbox
macros: a lighter footprint is one of the major selling points of
blackbox macros.