This introduces circular::require which will issue warnings if you load
modules that have circular dependencies from within a module that uses
Care has been taken to supress warnings that would issue fourth from
perl5i dependencies themselves which do have circular dependencies
this fixes #217
This reverts commit 6a51af0, reversing
changes made to b572034.
This change doubled load time. It will instead be moved into the issue/217 branch to
clear the way for release and so it can continue to be worked on.