Add Float to llvm::type_to_str.
Add a depth counter to llvm::type_to_str to work around infinite llvm types.
Make default method handling not choke on self region params. Closes #7341.
Make calling methods parameterized on the trait work from default methods.

This is done by adding a new notion of "vtable_self".
We do not yet properly handle super traits.

Closes #7183.
Actually resolve trait bounds on impls. Closes #7266.
Rework vtable_res to not be flattened. It is now a list of the resolutions for each param.
Drop an unused field from param_substs.
Drop the impl_id field from fn_ctxt.
Improve handling of trait bounds on a trait in default methods.

This is work on #7460.
It does not properly handle certain cross crate situations,
because we don't properly export vtable resolution information.
Add tests for some default method things.