Document Rc<T>

```
{
    let five_alive = {
        // 5 is allocated  
        let five = Rc::new(vec![1,2,3,4,5]);
        // points to the same vec
        let also_five = five.clone();
        // also points to the same vec, but weakly
        also_five.downgrade()
        // five and also_five go out of scope here. There are no more Strong references
        // so the vec's destructor is called, freeing its memory. However the memory the
        // vec itself lives in won't be freed, because a weak reference lives on in five_alive.
    };
    // five_alive goes out of scope, so there are no Strong or weak references to the
    // vec left. The memory is deallocated here.
}
```