Move logic checking valid names from ClassPath to ClassPathContext
Move logic checking valid names from ClassPath to ClassPathContext

Other methods taking the same kind of decisions were already
in ClassPathContext, e.g., isValidName() or, in some sense,
even toBinaryName().

This makes ClassPath itself be completely agnostic of how
particular kinds of files or directories are named.

It also allows to override this logic at the context level.
Without it, overriding this logic required a fair amount of
code duplication from ClassPath.

jvican/scala,jvican/scala,scala/scala,lrytz/scala,slothspot/scala,felixmulder/scala,jvican/scala,lrytz/scala,felixmulder/scala,jvican/scala,felixmulder/scala,shimib/scala,scala/scala,slothspot/scala,slothspot/scala,shimib/scala,martijnhoekstra/scala,jvican/scala,jvican/scala,slothspot/scala,shimib/scala,felixmulder/scala,lrytz/scala,scala/scala,martijnhoekstra/scala,lrytz/scala,lrytz/scala,shimib/scala,slothspot/scala,martijnhoekstra/scala,scala/scala,scala/scala,slothspot/scala,felixmulder/scala,felixmulder/scala,martijnhoekstra/scala,shimib/scala,shimib/scala,slothspot/scala,lrytz/scala,jvican/scala,martijnhoekstra/scala,felixmulder/scala,scala/scala,martijnhoekstra/scala