[ADT] ImmutableList no longer requires elements to be copy constructible

ImmutableList used to require elements to have a copy constructor for no
good reason, this patch aims to fix this.
It also required but did not enforce its elements to be trivially
destructible, so a new static_assert is added to guard against misuse.

Differential Revision: https://reviews.llvm.org/D49985


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@340824 91177308-0d34-0410-b5e6-96231b3b80d8
2 files changed