make debug() format checking MSVC-compatible
use MSVC-compatible extended initializer list
make header inclusions compiler-dependent
add class AutoFree, MSVC-compatible demangle() function/macro