Reimplement Hash.unnest

The reimplementation:

  1. eliminates an extraneous function, and
  2. avoids licensing issues associated with the previous
     implementation.