Change GitProjectData.getRepositoryMapping to work on linked resources
When we are looking up the mapping for a file contained within a linked
directory the linked directory may be mapped to a Git repository that is
not the same as the project itself, or the project doesn't even have a
Git repository.
This may also be necessary for submodules. For example a single project
in Eclipse may actually contain several Git submodules below it and each
must have its own RepositoryMapping.
We now store the RepositoryMapping for a given IContainer directly on
that container using a session property. This way Eclipse manages the
hash lookups for us, and we can efficiently walk up the tree to locate
the nearest mapping for any resource.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>