Typecheck the `finally` block with the right continuations.
Summary:
It turns out not all continuations should be used to typecheck the `finally` block. For example the `do` continuation should not be used because `do` statements don't cause the control flow to jump to the finally block like a `break` statement would.
This diff fixes that.
There are a few refactorings, renamings and type annotations in this diff as well.
Reviewed By: losvald
Differential Revision:
D38137536
fbshipit-source-id:
2f3df0885a953ce5fa3ee9b09fc4e13715e03f3b