Implement non-adaptive padding negotiation primitives
This ticket is to cover the pieces of proposal 254 (https://gitweb.torproject.org/torspec.git/tree/proposals/254-padding-negotiation.txt) other than the adaptive padding state machine (#7028 (moved)).
These will be needed for netflow padding (#16861 (moved)) and hidden service circuit setup fingerprinting.