[API Notes] Ensure that modules get rebuilt when API notes change.

The approach here is fairly simple: treat API notes source files as
"sources" in the source manager, so that module files automatically
check whether they have changed and rebuild when they do. Also, have
API notes files compiled into the cache keep track of the size and
modification time of the API notes source files from which they were
generated.

Fixes rdar://problem/25639554.

(cherry picked from commit b07d2eed96ce5bba8cba80f236e87db776a48c63)
10 files changed