Start of data structure cleanup for trait system. Get rid of CoherenceInfo, make trait_impls less bogus.
Refactor some coherence/method trans code, add an impls map to tcx.

Rewrite method_with_name_or_default to use the new impls map.
Get rid of ProvidedMethodsMap.
Get rid of resolve::MethodInfo. Closes #4946.
Add provided method information to ty::Method. Get rid of ProvidedMethodSource.
Refactor a handful of stuff in the metadata encoder.
Export information about used default methods instead of regenerating it. Closes #7862.
auto merge of #7886 : msullivan/rust/default-methods, r=pcwalton

This does a bunch of cleanup on the data structures for the trait system. (Unfortunately it doesn't remove `provided_method_sources`. Maybe later.)

It also changes how cross crate methods are handled, so that information about them is exported in metadata, instead of having the methods regenerated by every crate that imports an impl.

r? @nikomatsakis, maybe?