Configurable log4j configuration

When I deployed a Kafka cluster the other week I realised that some of
the “default” options in the bundled log4j configuration file included
TRACE level, which is way too verbose to use in production (as it most
likely will affect performance).

Rather than just updating the log4j template I figured I could as well
make the log4j configuration a bit more configurable, so to speak. The
configuration is a bit verbose, but it’s what I could come up with right
now. Will most likely revisit this in the future.

Should be noted that I’ve kept the TRACE level for a few loggers, but
that’s mostly for historic purposes and will be updated in a later
commit.
Update tests for log4j configuration

Whoops, probably should’ve done this way back.
Switch TRACE level with INFO

I wouldn’t deploy anything with TRACE / DEBUG as log level to production
as it will *most likely* affect performance. I know that the log4j file
that is bundled with Kafka defines these at TRACE, but I don’t really
think that the file is intended to be used in a production environment
to be honest.
Update log4j `rootLogger`

`stdout` doesn’t really make sense since both stdout and stderr are
redirected to `/dev/null` in the init.d script(s).

Log everything (that isn’t explicitly configured to be logged elsewhere)
to `<log dir>/kafka.log`.
Remove `LogCleaner` logger

The appender doesn’t even exist in the bundle configuration file, and it
is easy enough to just add the configuration if one wants it.
Roll over log files on a daily basis

Rather than an hourly as from what I’ve seen during a quite small
experiment is that Kafka doesn’t generate any significant amount of log
content.
Make it easier to override logging config.

The previous structure did make it a bit cumbersome to override for
example the appender type, while this structure (essentially only
hashes) makes it a bit easier.
Merge branch 'sane-log4j-configuration'