Add an extra note about costs in version_array.m

version_array.m did not document the cost of modifying an old part of the
array.  This change adds a simple description.

library/version_array.m:
    As above.
Fix a spelling mistake.

library/version_hash_table.m:
    As above.
Add two new functions to version_hash_table and hash_table

library/version_hash_table.m:
    Provide a new from_assoc_list function that gives the caller more
    control over the new hash table.

    Provide a new function named copy to make a copy of a hash table,
    this makes it easier for programmers to reason about performance when
    using version hash tables.

library/hash_table.m:
    Add the same functions to hash_table.m so both modules have the same
    interface.

NEWS:
    Announce the change.