Add support for desugar tests.
Generalise the process comparator to allow different internal names

These can change according to arbitrary placement rules, which makes
some process tests useless, otherwise.
Implement timed CSP extensions.

This includes support for prioritise, Timed sections, /+ {} +\ and
[+{}+].

This differs from FDR2's implementation in two important ways, both
related to tock:

1. Firstly, timed_prioritise is not supported, because of 2.
2. tock HAS to be declared manually in the user file. FDR2 synthesises
   a tock definition for the user, if a timed section is included.
   However, this is problematic when timed sections are allowed in
   arbitrary let contexts, as this means any expression could contain a
   timed section, and thus cause a tock definition to be added. This is
   inconsistent with our current model that requires all channels to be
   defined when a file is initially loaded (to allow pattern matches to
   be disambiguated correctly).
Merge branch 'feature/timed_extensions'