Make perl checker smarter about include directories, remove impossible perl critic rule.

Add support to find the top level module directory when editing perl modules
that are part of a package with multiple layers. For instance you have

package Test;
package Test::Foo;
package Test::Foo::Bar;

And you're editing Bar.pm this code will find the directory where Test.pm lives and
add it to the perl include path with -I.  It works much like the code for D.

This is required because if you have multiple packages and they include each other
you will get compilation errors saying perl couldn't find the module, which is sad.

As a second change,
Since flycheck changes the filename when it creates a temporary file, it seems that
we will never be able to pass the test that the perl module's filename matches
the declared package name.  So disable that rule in perl critic by default on the
command line.