Make priavcy checking aware that a `use` directive can point to two defintions (namespaces) with different privacy. Closes #4110
auto merge of #12245 : nick29581/rust/priv2, r=alexcrichton

closes #4110