Handle module inclusion cycles without stack-overflowing the javac.

While a stack overflow error is a decent exception that should nearly always indicate a recursion without a base-case, such as walking a cyclical graph, it's very bad for this to happen inside the javac process.  It leads to eclipse actually crapping out in un-fun ways, and is just generally not a good idea.  So instead, detect and report a module inclusion cycle for easy diagnosis.