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.
- Do we always look at is_canonical when picking a channel?
- Do we always look at is_canonical when extending?
- Is is_canonical set correctly?