Refurbish try expression.

Synchronize syntax and compilation with the original compiler:

  * Allow empty body in catch and finally clauses.
  * Allow parameter-less catch.
  * Don't allow `then` after `try` or `finally`.
  * Imply `catch` only for a lone try clause (without `finally`).
clean up @marchaefner's #197