Made checkFullyAnnotatedBinding use common code
Further potbelly fixes

We now do a preprocess to figure out sufficiently obvious kinds in annots. This
means that:

    forall a b. a -> b

is now a full annotation, because 'a' and 'b' can only have kind *. This allows
many more cycles to be broken, and:

    let { foo : forall a b. a -> b
        ; foo x = foo (bar "hi")
        ; bar x = case foo x of { _ -> x }
        } in bar

now correclty yields 'forall (a : *). a -> a'.