librustc: Forbid `&` pointers (other than `&'static`) inside `@` boxes.

This makes custom borrowing implementations for custom smart pointers
sound.
auto merge of #7894 : pcwalton/rust/and-pointers-in-at-boxes, r=brson

r? @brson