has_side_effects()
`AST_Try` is an `AST_Block` with extra blocks that also need to scan for side-effects. Also extend this functionality to handle `AST_If` and `AST_LabeledStatement` while we are at it. fixes #1673