Fix a couple signed/unsigned comparison warnings
Streamline logging interface

Previously, separate macros were needed for cases where there were no
printf-style separated formatting/value arguments, eg 'LOG("hello");'.

This updates things such that the same LOG macro handles both cases,
and removes many other permutations which weren't being used anyway.