Make path.needsParens(true) ignore statement parsing ambiguities.

As @spicyj pointed out in
https://github.com/benjamn/recast/issues/81#issuecomment-42729389, the
NodePath.prototype.needsParens method has been conflating precedence logic
with garden-path parser lookahead quirks.

Rather than removing that edge case logic from the function, I have made
it possible to skip the canBeFirstInStatement/firstInStatement checks by
explicitly passing true to needsParens.

Since the behavior of needsParens differs only if client code passes true
for the assumeExpressionContext parameter, this change is completely
backwards-compatible and does not require a minor version bump.