bluestore: declare intrusive_ptr_* functions for Onode

BlueStore.h defines intrusive_ptr_add_ref()/intrusive_ptr_release()
for BlueStore::Onode at the end of the header, after the BlueStore class
definition. However, OnodeRef can already be destroyed inside BlueStore,
for example in the inline member function BlueStore::debug_get_onode():

> OnodeRef debug_get_onode(const coll_t& cid, const ghobject_t& hoid) {
>   ...
>   return OnodeRef();
>   ...
> }

As a result, these functions are not visible to ADL, causing a compilation
error:

> error: no matching function for call to 'intrusive_ptr_release'

Declare the functions as friends inside Onode, following the existing
pattern used by SharedBlob and Blob. This makes them discoverable through
ADL and grants access to Onode::get() and put().

Remove the old file-scope static inline definitions to avoid conflicting
declarations and ambiguous overloads:

> error: static declaration of 'intrusive_ptr_add_ref' follows non-static declaration
> error: call to 'intrusive_ptr_add_ref' is ambiguous

This issue does not apply upstream, where Onode has been moved into the
bluestore namespace in BlueStore_objects.h.

--- a/src/os/bluestore/BlueStore.h
+++ b/src/os/bluestore/BlueStore.h
@@ -1451,6 +1451,9 @@
     void get();
     void put();
 
+    friend void intrusive_ptr_add_ref(Onode *o) { o->get(); }
+    friend void intrusive_ptr_release(Onode *o) { o->put(); }
+
     inline bool is_cached() const {
       return cached;
     }
@@ -4236,13 +4239,6 @@
       << s.values[BlueStore::volatile_statfs::STATFS_COMPRESSED_ALLOCATED];
 }
 
-static inline void intrusive_ptr_add_ref(BlueStore::Onode *o) {
-  o->get();
-}
-static inline void intrusive_ptr_release(BlueStore::Onode *o) {
-  o->put();
-}
-
 static inline void intrusive_ptr_add_ref(BlueStore::OpSequencer *o) {
   o->get();
 }
