Extended Rc uniqueness methods

```maybe_unique()``` allows to mutate the referenced data if the pointer is guaranteed to be the only one.
```is_last_standing()``` allows to check if this pointer is the last strong one.

One possible application of these methods is a shared resource factory. The resource doesn't know how it is built or destroyed, it may even be method-less. The factory knows how to create a resource and how to destroy it. Upon creation, the factory stores ```Rc<T>``` internally and returns a cloned reference. Later, at a designated (by the user) moment, the factory can sweep over known references and delete only those resources that are no longer needed by anyone else (here comes ```maybe_unique``` or ```is_last_standing```).
That's what I initially tried, but Rust doesn't allow reassigning ```*self``` in the the match arm of ```maybe_unique()``` because the latter freezes self.