librustc: Mark all type implementations public. rs=impl-publicity
librustc: Make methods private if the impl is private
librustc: Enforce cross-crate method privacy
auto merge of #5156 : pcwalton/rust/method-privacy, r=pcwalton

r? @brson
Initial scheduler prototyping
wip