Negotiate and use CGO.
This branch is a proof-of-concept to negotiate counter galois onion when available. It does some refactoring to ensure that the relay cell format is also negotiated at the same time.
We shouldn't merge this as-is; it's totally untested. I'll want to rebase this once the cc/flowctrl code is usable.
Closes #1947 (closed). Closes #1945 (closed).