Add support for the combination of tuple matches and exception clauses.

Code like the following no longer allocates a block for the scrutinee
expressions:

   match x, y with
     | A p, false  -> e1
     | B p, true   -> e2
     | _           -> e3
     | exception E -> e4

Some refactoring is needed to eliminate duplication in the AST to
lambda code.
Test suite for handler-case.