Refactor hash-table to clean up some issues noted in previous change.
* Export former %make-hash-table as make-hash-table*.
* Create new make-hash-table-type* which can create a type given an equality
predicate and some keyword options. If the equality predicate has registered
properties, no additional options may be necessary, except perhaps to choose
the entry type (which is specified by name).
* Change make-hash-table to accept the same options as make-hash-table-type* and
to use the same defaulting.
* Change internal procedure follow-memo-crap to hash-metadata, which more
accurately reflects its purpose: to get a properties table for the primary
hash parameters.