Simple logging wrapper

Changed some printf() calls to use Log::msg() instead.

To do:

- Do empty functions ALWAYS get optimized away in non debug builds?
- Log::msg() etc could all be the same function that takes level as
param?