[ refactor ] termination checking pragmas

- Moved TerminationCheck from Concrete.Defs to Syntax.Common
- unify NoTerminationCheckPragma and MeasurePragma into
  TerminationCheckPragma carrying a TerminationCheck
- TerminationCheck rather than Bool for MutualInfo
Added NON_TERMINATING pragma

Like NO_TERMINATION_CHECK it disables termination checking for a function, but unlike NO_TERMINATION_CHECK, NON_TERMINATING functions are not treated as terminating by the type checker.
Make C-c C-n at top-level reduce NON_TERMINATING functions