cleaned up logger code

- logging functions are now variadic and use `util.format`
when logging strings
- logging function recognises error objects and serializes
them properly
- added debug level
- renamed critical to crit to match with syslog
removed raw level in favour of defaulting to info and updated colors
bumped version