Similar renaming fix for records

Records will now be deterministicly named as a function of their
members. For instance record a, b, c : integer; will now generate the
base name "record{integer,integer,integer}". This makes assignments
between anonymous types pontentially meaningful as the deterministic and
repeatable naming scheme will ensure equal types for equal structs.

This may cause issues with anon vs. named types, as a named record will
create a ThinType wrapper over its basic (and now repeatably named)
RecordType, meaning that (typeof "foo") for foo some named type symbol
will recur through the ThinType and yield the type of the wrapped
type which will be equal to the type of an anonyously defined record
type.

The fix is probably to have the ThinType recursive (typeof) append a
"wrapped_" to the yielded name, or eliminate the ThinType in this
specific case and have named record types install themselves as full
record types without a ThinType wrapper. The latter is arguably better.
tiny cleanups