Encodes fully materialized ClientHello extensions.
@spec encode(term()) :: {:ok, {0..65535, binary()}} | {:error, term()}