* Clean up and rework DXIL library depencencies
This change reworks the dependency specifications for the DXIL*
libraries. Many of these libraries had over and under specified
dependencies.
This also collapses the DxilRDATBuidlder into the DxilContainer library
to remove the cyclic dependency between the two libraries.
* Break assert dependency between DXIL and Analysis
In assert builds the DXILModule constructor was creating forced bindings
to debugging methods that are often used from the debugger. This forced
binding is useful, but doesn't need to live in the DXIL library.
To break the dependency I've moved the code into Analysis. I've also
made that code only included when building with MSVC. When using other
compilers `__attribute__((used))` can be applied to the function via the
`LLVM_DUMP_METHOD` annotation to have the same effect.
* Conditionalize dxilconv pass inclusion in opt
DXC can be built without dxilconv, so we need to handle the case
where dxilconv is not included but we still want opt for lit tests.
We will also need to surface dxilconv as a lit feature, but that can
come later when I get the lit tests running.
* Fixing dependencies for IR and DXIL libs
IR doesn't actually need dxil, and dxil doesn't actually need IPA.