Enforce record wellformedness upon elimination

We want to enforce that records do not have duplicate fields in them; but it is intractable to do so inside the record type, since it makes it very difficult to define operators by induction upon the record structure.

So the next best thing is to at least enforce well-formedness when you try to read/write a field, and also when you try to cast a record. Essentially, constraints like "x in xs" now have a uniqueness property. And also record concatenation requires this.

This should resolve #55.