Handle template parameter-dependent bit field widths in libclang
In a class template, a bit field's width may depend on a template parameter. In this case the width expression cannot be evaluated.
Previously clang_getFieldDeclBitWidth() would assert, or cause memory unsafety and return an invalid result if assertions are disabled.
This adds a check for this case which returns an error code.
This work was largely taken from an earlier patch which was reverted due to an accidental API duplication (https://reviews.llvm.org/D130303).