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.

The reason why this is necessary is because when `forEachChild` descends into `body` (which is a `FunctionDeclaration`), it will go through the `parameters` first before the `body`.

Without this case, `isParameterReferencedInBody` will always return `true` because it can always find `param` in the function's `parameters`.