avoid over-large buffer for tail calls

Applying to a large number of arguments once causes the run-time
system to maintain a too-large buffer for managing tail calls in
the future. Decay the buffer size as it is reallocated.
fix GC-cooperation bug in `vector->values`

The `vector->values` function set up multiple return values
badly in the case that the given vector is chaperoned.
The problem could lead to NULL as results for `vector->values`.

Merge to v6.1
optimizer: fix tail-position bug in recent optimizer change

Fixes a problem with a7a912eeab.

The existing test suite caught this bug, but I somehow overlooked
the failure report.