Have isMainExit() default to the last main block if it can't find an exit.

Summary: Since we can have regions that end in an instruction with a taken edge
to an unlikely block (Jmp, RaiseWarning), we want to scan through all
main blocks first looking for an obvious exit, and then resort to
using the last block if it can't find one.

Reviewed By: @ottoni

Differential Revision: D1445507