Report circular type inference errors with -noImplicitAny

Fixes #476.
Can we make the error message a bit more explicit. I do not find "circularity" particularly helpful, specially that we do not print the cycle. how about:
"'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its initializer."

"Function implicitly has return type 'any' because it does not have a return type annotation and it is referenced directly or indirectly in at least one if its return expressions.":