Implemented a new allocator, `AlignedBlockList` and its thread-safe version `SharedAlignedBlockList`

$(REF AlignedBlockList, std,experimental,allocator,building_blocks, aligned_block_list) represents
a list of allocators which allows for deallocations in constant time.
Although allocations are in theory served in linear searching time, `deallocate` calls take
$(BIGOH 1) time, by using aligned allocations. The `ParentAllocator` must implement `alignedAllocate`.

$(REF SharedAlignedBlockList, std,experimental,allocator,building_blocks, aligned_block_list) has the
same semantics as its single threaded version, however the internal allocators must be in addition marked
as shared.
