HostAllocationPolicy shares pointers and pinning setting through shared_ptr
The pointer to allocated memory should not be part of the allocator, since one should be able to copy an allocator.
Also the pinning setting, CanBePinned and the actual pinning settings, should not be shared, since then changing such a setting for an object with a copied allocator will also change the setting in the source (and make objects inconsistent).
Related to #2578
Remove meta information from host allocator policy
Also prevent HostAllocator to be copied/propagated.
A HostVector shouldn't be copied without the calling code
having a choice on the pinning policy.
This commit prevents copy construction. Move construction and
copy and move assignment is still allowed.
For move/swap nothing is changed.
For copy assignment the pinning policy of the destination
container is used.