Use esutils.ast.isProblematicIfStatement

I've extracted `esmangle`'s `isProblematicIfStatement` routine to `esutils`.
It covers edge cases. For example,
```js
{
    type: "IfStatement",
    test: EXPR,
    consequent: {
        type: "LabeledStatement",
        body: {type: "IfStatement", test: EXPR, consequent: STMT}
    },
    alternate: STMT
}
```
is also an invalid node.
This one is invalid because `left` and `right` are required on `ForInStatement`. Same thing above with `WhileStatement`'s `test`, `WithStatement`'s `object`, and `LabeledStatement`'s `label`.