Modify node in place, rather than creating a replacement

The main benefit here is that we can just switch `node.type` to `'FunctionExpression'` and not worry about replicating its other properties, since `FunctionExpression` and `ArrowFunctionExpression` have the same fields.

In particular, I'm anticipating that `Function` nodes will eventually support an `.async` property, and I would like that to get carried over no matter what version of `ast-types` is used.