Refactored logging system
- Rewrote the logger based on ContextualLogger from python-application
- Modeled the logging API after the one in application.log
- Aggregated all chunk reporting methods into received_chunk/sent_chunk
- Added missing received_illegal_chunk method for logging bad chunks
- Removed report_in/report_out line based logging methods
- Optimized logging to not evaluate messages until logged