Upgrade to log4j2

Asynchronous logging can be enabled with `-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector`

Difference in performance:

No Async:

|Quartile|Latency (ms)|
|--------|----------|
|min|828|
|25%|966.25|
|50%|1032|
|75%|1165|
|max|93287|

With Async:

|Quartile|Latency (ms)|
|-------|-------|
|min|843|
|25%|931.5|
|50%|1017|
|75%|1129|
|max|2194|

It is worth noting that there is still a nasty performance lag when new RealTime segments are rolled over to historicals if the segment is queried during that transition time. This seems to have eliminated the intermittent bad query times though.
let's add a comment as to why lmax is needed