Check traits for built-in bounds in impls
auto merge of #17008 : nick29581/rust/impl2, r=pcwalton

r?

(btw, the change to Deref is one we would like to make at some point anyway, but it is needed here to keep some tests passing)