rc, arc: add support for by-value copy-on-write and try-to-write

The try_ functions don't require Clone, but they do nothing if rc > 1

The try_unwrap and value take and return by-value instead of &mut