Split freshname generator out of BetaReduction

Caveat: This encodes ML-style sharing constraints using singleton types.
It works like a breeze.