Use type_traits to test if copyable/assignable

Replace compile tests that check if types are copy constructible and copy assignable with normal tests that use type_traits (if available).
Test Buffer