This commit mostly just replaces bad uses of NDEBUG with uses of LLVM_ENABLE_ABI_BREAKING_CHANGES - the safe way to include ABI breaking changes (normally extra struct elements in headers).
Reid Kleckner suggested that Arthur Eubanks would the correct reviewer for this patch, so adding them!