Fix memory leaks.
Generalize casefiles to the extent that we can use them for sorting
and other kinds of data transformations. Change cases to be
copy-on-write to improve memory efficiency in common cases. Every
access to a member of a `struct ccase' was changed to be a call to a
case_*() function, especially case_data(), case_num(), case_str(), or
case_data_rw(). Many instances of a local variable named "case_num"
were changed to "case_idx" as a consequence. Many `struct ccase *'
were changed to actual `struct ccase' because of copying semantics of
cases. In several places there was a choice between updating debug
code to work with the new ADTs or just deleting it because it was
useless; I chose to delete it.
The workspace idea didn't work out.
68 files changed: