TODO updates
rename NDEBUG preprocessor variable to XZERO_DEBUG

This is because LLVM unfortunately enforces us not to use NDEBUG
as they already use it in their public headers and this fucks up
with other parties that want to compile against LLVM *and*
want to conditionally use NDEBUG, too.
dead-file cleanup