stop treating `Rc` cycles as unsafe
add a strong/weak reference counted pointer type
rename Strong -> Rc, replacing `rc` with `weak`
add missing `ptr_eq` method to `Rc` and `Weak`