Create & initialize AdtImplMap.
AdtImplMap is initialized before analysis of each crate,
avoiding quadratic complexity of scanning all impl blocks for each ADT.
(DefId of ADT) => Vec<(HirId of relevant impl block, impl_self_ty)>
We use this map to quickly access associated impl blocks per ADT.
impl_self_ty in the return value may differ from tcx.type_of(ADT.DefID),
as different instantiations of the same ADT are distinct Tys.
(e.g. Foo<i32, i64>, Foo<String, i32>)