Replace `std.experimental.allocator.ISharedAllocator` with `std.experimental.allocator.RCISharedAllocator`

$(B Motivation):

Keep track of references to allocators so they don't escape, dangle,
and cause undefined behavior.

From now on, `RCISharedAllocator` will be used instead of the old
`ISharedAllocator` interface.
$(REF sharedAllocatorObject, std, experimental, allocator)` can be used to build
a `RCISharedAllocator` out of a custom allocator.

------
import std.experimental.allocator.building_blocks.free_list : SharedFreeList;
import std.experimental.allocator.mallocator : Mallocator;

shared SharedFreeList!(Mallocator, chooseAtRuntime, chooseAtRuntime) sharedFL;
shared RCISharedAllocator sharedFLObj = sharedAllocatorObject(sharedFL);

auto b = sharedFLObj.allocate(100);
assert(b.length == 100);
assert(sharedFLObj.deallocate(b));
------
