Use name ranges instead of decl ranges for node IDs.
Use name ranges instead of decl ranges for node IDs.

Summary:
Some Clang decls, like FunctionDecl, report unexpected source
ranges. For instance:

`bool foo();`

may report a macro location on its left-hand side if `bool` is
defined by `stdbool.h`. This is a problem if `foo` is declared
in a header that is included in different preprocessor contexts.
It will commonly result in multiple disjoint `foo`s in the graph.
Instead of using the whole decl range, we'll instead just use the
decl's name range, which avoids this issue (on both sides of the
range).

Objective-C interfaces are excluded because of some internal
Clang strangeness, possibly alluded to by D1128.

Reviewers: shahms, fromberger, #core_team

Reviewed By: fromberger, #core_team

Subscribers: salguarnieri, #core_team, schroederc

Differential Revision: https://phabricator-dot-kythe-repo.appspot.com/D1834

kythe/kythe,benjyw/kythe,bzz/kythe,benjyw/kythe,benjyw/kythe,benjyw/kythe,benjyw/kythe,bzz/kythe,bzz/kythe,benjyw/kythe,benjyw/kythe,bzz/kythe,bzz/kythe,bzz/kythe,kythe/kythe,kythe/kythe,kythe/kythe,benjyw/kythe,bzz/kythe,benjyw/kythe,kythe/kythe,kythe/kythe,bzz/kythe,kythe/kythe,benjyw/kythe,kythe/kythe,bzz/kythe,bzz/kythe,benjyw/kythe,benjyw/kythe,kythe/kythe,kythe/kythe,kythe/kythe,bzz/kythe,bzz/kythe