Implement prop#269 "Hybrid Handshakes" (composition module)

As part of #24985 (moved), we'll need to implement prop#269. This should probably be in two parts:

  1. Implement a new module which, given function pointers to two handshakes (one classic and the other post-quantum secure) which follow some prescribed API, compose the handshakes together to produce a final shared secret
  2. Implement "hybrid null" (as it's called in the proposal), which here I'm calling "ntor2"

This ticket is about part 1. It depends upon #24986 (moved) as well.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information