make scope_builder tolerant of exceptions
make scope_builder tolerant of exceptions

Summary:
This diff fixes a longstanding bug where scope information returned by the ssa
builder would be incomplete.

Turns out that since the ssa builder (1) uses OCaml exceptions to signal abrupt
completions (2) super-calls the scope builder to manage scopes, the latter needs
to know about the former. Duh.

Anyhoo, this makes it safe to use the 1-pass Ssa_builder.program_with_scope
 instead of the 2-pass Scope_builder.program + Ssa_builder.program.

Reviewed By: samwgoldman

Differential Revision: D6632295

fbshipit-source-id: a456f756f5db68cf8f199e5bfda21e8c54455b13

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