Add a 'fallback' to InheritanceMap

setFallback() allows an IInheritanceProvider to be specified which
will be consulted when inheritance for a requested class is unavailable.
If it returns a value, the inheritance will be cached in the InheritanceMap.
Revert "Add a 'fallback' to InheritanceMap"

This reverts commit d2c2ad65db77953eaf8482a3023bd87c943bf88f.
Cache inheritance mapping in JarMapping

JarMapping now maintains an InheritanceMap, and will populate
from IInheritanceProvider, if given. This allows inheritance to
be cached either locally or globally (across different JarMappings).
Cache negative hits in InheritanceMap