Add VariableScope.synthesize back

Whoops, looks like Atomy for example uses this. We should probably add
some specs to verify the behavior and also make explicit this is a
supported API.

This reverts commit 676993f2eb846a544487a2e33b525ca220bb02fd.
Set call frame before internalizing

Internalizing needs locking, so a GC might happen here. This means that
we need to setup a sane call frame before we call internalize so the GC
won't try to collect bogus data.

Also makes method that does the internalization private, since it's not
used externally so people also won't start to.