Add option to split by class/module + cleanup

So it looks like what we're actually returning here is returning either the class or the module if we can't split it, right?

I think we could simplify this code and reduce the duplication inside `validateName` by making this method instead always return a string representing the lowest level at which this method/class/module can be split. So for things that can be split, we'd return `'%s.%s' % (module, call)`. For a module that can't be split, we'd return `'%s' % module`. For a class that can't be split, `'%s' % klass`

Maybe this could be called `getLowestSplitLevelHash`? It should also probably include a quick docstring to this effect.