Fix TUnpack related errors

1) Commutative conversion rule was incorrectly applied. Need to weaken
   appropriately
   This lead to many spurious errors in applications of the Ax rule.

2) The desugarer and resolver globally set type variables after
   unpacking instead of locally.

Bonus: Added a Name to the TUnpack so the scope is correctly written.

Bonus2: String representation of names will also be unique after
Uniques.unique pass.