Removes one subprocess and one temp file from the build for each tablegen invocation.
This attempts to reland r330742. r330742 got reverted because some people reported that llvm-tblgen ran on every build after it.
This could happen if the depfile output got deleted without deleting the main .inc output. To fix, make TableGen always write the depfile, but keep writing the main .inc output only if it has changed. This matches what we did in cmake before.
dberris, could you check if things are better for you with this version?