Add basic recursive types.

This commit adds basic recursive types to Links. This means that when
writing a recursive type, it is no longer necessary to add explicit Mu
annotations, as this will be performed automatically during the binding
refinement stage.

Types within the same group (ie, immediately following each other upon
declaration, uninterrupted by other declarations such as functions) will
be checked for mutual recursion, and inlined if this is necessary.

Currently, this does not work on recursive types with type arguments --
but that will be fixed in a subsequent commit.

The commit also modifies the SMTP example to reflect and illustrate the
new changes.