Handle multiple end-of-region points in a translation

Summary: Any block in a region that doesn't have any successors is an end point.  Handle
this by checking for end-of-region at the end of each block, and resetting the
m_hasExit flag at each region end so that each exit can be generated correctly.

Reviewed By: @ottoni

Differential Revision: D1431292