Cleanup grabbing fresh type variables

We only use the state to generate new type variables. This pushes some
boilerplate around to reflect that.