Make Transforms.Constructors convert case-expressions to use int tags instead of constructor names

map f ls = case ls of
    Cons x xs -> Cons (f x) (map f xs);
    Nil       -> Nil;

Gets translated to

map f ls = case ls of
    <3> x xs -> Cons (f x) (map f xs);
    <4>      -> Nil;

Also updated types so that lambda-lifting works again. May want to revisit
Expr type again. Maybe have a SimplifiedExpr type for post-transformation
programs.