Partial fix to the 'potbelly' algorithm in the type checker

Breaks cycles based on 'fully annotated' bindings. Unfortunately, it's very easy
to write bindings that aren't fully annotated, due to kind ambiguity. For
instance:

    forall a b. a -> b

is not a full annotation, but:

    forall (a b : *). a -> b

is. This can almost certainly be improved.