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: