A small re-write/reorganisation of the client components

### Changes:
* Added SQL/database monitoring
* Added ability to compress JSON output (disk and server)
* Separated flushing components
* Separated outputs into different streams (including the function and handlers which are very similar)
* Updated the readme