Throw an error on a module inclusion cycle, and add a test.
eliminate an unnecessary method.
Rename exception.
Re-work a loop to better use the stack of path elements, and fix error messaging.
Merge pull request #187 from cgruber/catchmoduleincludecycles

Handle module inclusion cycles without stack-overflowing the javac.