Add unittests for safe sharing and make_shareable()

Checks the following assertions:

1. a bufferlist shared with buffer::list::share yields shared
raw memory

2. a bufferlist copied with buffer::list::list(const list&) yields
shared raw memory

3. an unshareable bufferlist (bufferlist with unshareable segments)
copied with buffer::list::list(const list&) yields unshared raw
memory

4. an unshareable bufferlist claimed with CLAIM_ALLOW_NONSHAREABLE
yields shared raw memory

Signed-off-by: Matt Benjamin <matt@cohortfs.com>