Implements slim reference counted pointers.

`Rc<T>` and `ARc<T>` each have 16 bytes of overhead to
store refcounts. This PR provides a version with only 8.

In exchange, there's no weak counts. But honestly, nobody
uses those anyways. In the future I'd like to replace
stdlib Rc and Arc with the slim versions, providing `FatRc`
and `FatARc` for those that need it. When I last tried this,
I didn't have enough political clout to push it through.
Maybe incubating in collect-rs will help it along.

r? @Gankro
Can this be changed to `rust-lang/rust#12808` so it's easier to track where this came from