Update coherence rules to be more flexible for `impl Trait for Type`
auto merge of #5515 : nikomatsakis/rust/issue-5514-flexible-coherence-rules, r=pcwalton

See issue #5514

r? @pcwalton