Conditionally emit rest parameters

This is a sketch to omit code emission for the `...rest` parameter when it's not used in the body.

With this patch, the example in #498 will be compiled without generating code for the `...rest` parameter.

If this is the right approach, I can complete the implementation by handling the other cases in the new `isParameterReferencedInBody` method.

You can rename `body` to `func`, and call `forEachChild(func.body)`.

What I was thinking was that instead of a `ParameterDeclaration`, you just take a `Declaration`, but I wouldn't bother with it now. We can always do that in a different commit when we need it.