compiler: Test and fix mutating rest args

- Have the planner properly cast the lambda's mutable arguments to a
  datum cell before saving them to a mutable. This showed up for rest
  args because they're defined as a list element cell. This would likely
  have also showed up for arguments with inferred types and would
  definitely become a problem once explicit argument typing is
  implemented.

- Add function tests for both mutating the rest and the rest arg list's
  contents as allowed by R7RS.