Add explicit row variable syntax for function types.

A function type's consumption and production may begin with a dot,
indicating that it explicitly specifies row variables. This permits
writing a type signature for the general 'compose' combinator. Explicit
row variables are outermost quantified, same as implicit ones.
Check that declared types are instances of inferred.