add a `NonManaged` kind

Closes #10869
stop treating `Rc` cycles as unsafe
add a strong/weak reference counted pointer type
rename Strong -> Rc, replacing `rc` with `weak`
fix whitespace inconsistency
add back missing `ptr_eq` method
auto merge of #10926 : thestinger/rust/rc, r=cmr