Validate is_canonical more thoroughly
We use is_canonical to tell whether we should extend a circuit over a channel... but we should also double-check it as we are extending that circuit, to make sure we didn't mess up.
Also, we should audit the code that sets is_canonical.