bundle logging and log4j2

- replaces log4j with log4j2 (stable release)
- adds new utilities for logging structured data via bundles and bundle sinks; these are used for query event logging, and most likely more things in the future
- cleans up old log4j init logic in main, and annoying, frequent, std err spam
- query trace logging handled via log4j2 rather than basis's RollingLog
- logging config defaults to >= info on stdout and >= warn on stderr (warn et al appear on both)
- down stream users can easily use custom settings, auto-change detection and so on in the usual log4j2 manners via system properties

more improvements to be made in the future (eg. probably turning on async logging, more bundle-event logging, less arduous bundle based logging), but this is better than what we have now and is a sizable code delta already.