warn on mismatched package/module case

When you upload `lib/Foo/Bar.pm` but the package statement `package Foo::bar`, you probably made a mistake.  This code adds a warning for the situation — and adds a generic mechanism for warnings like it.

(This doesn't catch every case, but probably most.  At least many.)