Add a callback for __has_include and use it for dependency scanning.
This adds a preprocessor callback for the __has_include and
Successful checking for the presence of a header should add it to the list of
header dependencies so this overrides the callback in the dependency scanner.
Patch by Pete Cooper with some additions by me.
Differential Revision: https://reviews.llvm.org/D30882