Inspect the AST for property references with the symbol name before typechecking
Inspect the AST for property references with the symbol name before typechecking

Summary:
This allows us to avoid typechecking (the most expensive part of the operation)
when the AST does not contain any property references with the symbol name we
are searching for.

On the Nuclide codebase, on my laptop, I have been using `MultiMap.get` in
`collection.js` as a test case. It reduces the time spent on this query from ~19
seconds to ~10 seconds. As `get` is a very common name, I think this represents
the worst case for this performance optimization, and it's still very close to a
2x improvement.

Next up is to grab ASTs from the heap rather than reparsing, which shaves off a
couple more seconds.

Reviewed By: samwgoldman

Differential Revision: D6849882

fbshipit-source-id: e2178bc6a6492346c7acce9d360cd340c2e465fe

nmote/flow,gabelevi/flow,mroch/flow,JonathanUsername/flow,nmote/flow,samwgoldman/flow,facebook/flow,claudiopro/flow,gabelevi/flow,gabelevi/flow,claudiopro/flow,popham/flow,AgentME/flow,claudiopro/flow,mroch/flow,jamesgpearce/flow,jamesgpearce/flow,AgentME/flow,jamesgpearce/flow,samwgoldman/flow,JonathanUsername/flow,gabelevi/flow,JonathanUsername/flow,gabelevi/flow,facebook/flow,JonathanUsername/flow,jamesgpearce/flow,nmote/flow,AgentME/flow,JonathanUsername/flow,facebook/flow,jamesgpearce/flow,nmote/flow,mroch/flow,popham/flow,jamesgpearce/flow,JonathanUsername/flow,mroch/flow,popham/flow,facebook/flow,popham/flow,mroch/flow,samwgoldman/flow,facebook/flow,nmote/flow,gabelevi/flow,samwgoldman/flow,nmote/flow,popham/flow,nmote/flow,samwgoldman/flow,JonathanUsername/flow,mroch/flow,facebook/flow,gabelevi/flow,AgentME/flow,facebook/flow,mroch/flow,claudiopro/flow,AgentME/flow,claudiopro/flow,popham/flow,jamesgpearce/flow,popham/flow,samwgoldman/flow,samwgoldman/flow