adds LLVMGetTailCallKind and LLVMSetTailCallKind to the public C API
The C api does not currently allow us to force tail calls to be preserved. Guaranteed tail calls are essential for performance in our case. We have found that LLVM optimizations will move calls out of tail position in certain cases.
An alternative api would be to add LLVMSetMustTail and LLVMGetMustTail (and the same for notail, I guess). That would keep the TailCallKind enum members private, but is inconsistent with the internal API.
background: I am one of the main contributors to the roc programming language. We use LLVM via the inkwell crate, which in turn uses the LLVM C api to construct LLVM modules.