librustc: Don't overwrite vtables when coercing to trait object.

Fixes #14399.
On Thu, Jun 12, 2014 at 06:06:19PM -0700, Luqman Aden wrote:
> Yes, I couldn't think of anything better. I went with adjustment
> cause it's true for when we add an adjustment (AutoDeref or
> AutoObject).

I think I don't quite understand what it means yet. I feel like we
should replace the simple `autoderefs: uint` either with some kind of
enum, or maybe just rename it to "adjustments: uint" and just count
AutoObject or AutoDeref uniformly. Either change will require a bit of
adjustments elsewhere.

Certainly we need a comment on MethodCall explaining how it works, and
giving a few examples (e.g., an expression with just autoderef, just
autoobject, or both, and what the different things look like). To some
extent that's pre-existing, because there should have been a comment
already: in the past, though, I know I wrote some extensive comments
along these lines for the rooting table, but we ripped that out and I
think the comments with it.