fix(dupfind): fix alpha-equivalence bug, add hash command and tests
Fix evaluation order bug in normalize.ml where OCaml's unspecified
tuple evaluation order caused function bodies to be converted before
parameters were registered, breaking variable alpha-renaming.
- Add `dupfind hash EXPR` to show normalized AST and structural hash
- Extend `dupfind find` to accept hex hashes and inline expressions
- Add pp_expr pretty-printer and structural hash function
- Add unit tests for all modules
- Fix package_of_file to return first sub-directory after root
- Add E607 good test case for merlint test integrity
- Remove debug output, add README