[bt][fbl] Remove std::unique_ptr traits from BT stack.

BT was using fbl:: containers, but wanted to use std::unqiue_ptr
instead of fbl::unique_ptr.  Because of this, they needed to carry
around their own definition of the pointer traits in order for the
containers to be usable.

Zircon now has support for std::unique_ptr now, however.  So the
containers support it by default, and we no longer need extra code up
at this level in order to allow this usage pattern.

Test: Build and runtests on a VIM2
Change-Id: I7204a0cab5b6728d7f6c202f1bf21398dc91c7e3
diff --git a/drivers/bluetooth/lib/common/BUILD.gn b/drivers/bluetooth/lib/common/BUILD.gn
index db0eb05..8b9807a 100644
--- a/drivers/bluetooth/lib/common/BUILD.gn
+++ b/drivers/bluetooth/lib/common/BUILD.gn
@@ -10,7 +10,6 @@
     "device_address.h",
     "device_class.cc",
     "device_class.h",
-    "intrusive_pointer_traits.h",
     "linked_list.h",
     "log.cc",
     "log.h",
diff --git a/drivers/bluetooth/lib/common/intrusive_pointer_traits.h b/drivers/bluetooth/lib/common/intrusive_pointer_traits.h
deleted file mode 100644
index 1e75645..0000000
--- a/drivers/bluetooth/lib/common/intrusive_pointer_traits.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2017 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef GARNET_DRIVERS_BLUETOOTH_LIB_COMMON_INTRUSIVE_POINTER_TRAITS_H_
-#define GARNET_DRIVERS_BLUETOOTH_LIB_COMMON_INTRUSIVE_POINTER_TRAITS_H_
-
-#include <zircon/assert.h>
-
-namespace fbl {
-namespace internal {
-
-// ContainerPtrTraits specialization for std::unique_ptr. This allows fbl
-// intrusive containers (fbl::DoublyLinkedList and fbl::SinglyLinkedList) to be
-// used with std::unique_ptr.
-//
-// See:
-// https://fuchsia.googlesource.com/zircon/+/master/system/ulib/fbl/include/fbl/intrusive_pointer_traits.h
-template <typename T>
-struct ContainerPtrTraits<::std::unique_ptr<T>> {
-  using ValueType = T;
-  using RefType = T&;
-  using ConstRefType = const T&;
-  using PtrType = ::std::unique_ptr<T>;
-  using ConstPtrType = ::std::unique_ptr<const T>;
-  using RawPtrType = T*;
-  using ConstRawPtrType = const T*;
-
-  static constexpr bool IsManaged = true;
-  static constexpr bool CanCopy = false;
-
-  static inline T* GetRaw(const PtrType& ptr) { return ptr.get(); }
-
-  static inline RawPtrType Leak(PtrType& ptr) __WARN_UNUSED_RESULT {
-    return ptr.release();
-  }
-
-  static inline PtrType Reclaim(RawPtrType ptr) { return PtrType(ptr); }
-};
-
-}  // namespace internal
-}  // namespace fbl
-
-#endif  // GARNET_DRIVERS_BLUETOOTH_LIB_COMMON_INTRUSIVE_POINTER_TRAITS_H_
diff --git a/drivers/bluetooth/lib/common/linked_list.h b/drivers/bluetooth/lib/common/linked_list.h
index 334dc64..83faeb0 100644
--- a/drivers/bluetooth/lib/common/linked_list.h
+++ b/drivers/bluetooth/lib/common/linked_list.h
@@ -9,8 +9,6 @@
 
 #include <fbl/intrusive_double_list.h>
 
-#include "garnet/drivers/bluetooth/lib/common/intrusive_pointer_traits.h"
-
 namespace btlib {
 namespace common {