New format for channels, updated some rules

In particular:
  * Moved from endpoint to x(Vs)<~~>y(Us) form
  * Updated rules to use this
  * Switched to "Impatient GV" with self-dual end type
  * Copied across syntax
  * Added new struct cong for channel symmetry