Unknown keyword handling fixes; use a more principled type for directory signature hash algo
Branch is on top of !3930 (merged) (therefore, Draft, to avoid accidental merge of !3930 (merged))
This has some types prep work, and then one field change. This is pursuant to making prod code for directory signatures using parse2 and the new encoder.
Edited by Ian Jackson