Compile with TOT llvm + add flang specific tablegen

This patch fixes a few incompatibilities with trunk Flang/trunk LLVM so that trunk Flang can build against trunk LLVM.

Additionally, the dependency on clang is removed by adding a flang specific tablegen implementation (which is just the parts of the clang tablegen implementation that flang uses).