Cleanup some problems with LLVM_ENABLE_DUMP in release builds
Removed a few unneeded tests for NDEBUG and replace others with
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP).
One issue involved ifdef'ing away a char* field from a struct, and changing
tablegen to handle it correctly, which might not be the best way to handle it.
This is fragile, as for any subsequent cmake runs the value for LLVM_ENABLE_DUMP is already set in the cmake cache and won't change even if the user modifies LLVM_ENABLE_ASSERTIONS.
We rather want cmake code that sets the define if either this option or LLVM_ENABLE_ASSERTIONS is enabled.