Refactor usage of osi_free() and osi_freebuf()

 * Allow to call osi_freebuf(ptr) on NULL pointers. This simplifies
   the code: a notable number of "if (foo != NULL)" checks are removed.
 * Add new function osi_free_and_reset(p_ptr) that frees the buffer,
   and explicitly resets the pointer to NULL.
   This prevents unintended usage of free memory.
 * Add corresponding function osi_freebuf_and_reset(p_ptr)
 * Minor cleanup around usages of osi_free() and osi_freebuf()

Also:
 * Removed unused function btif_gattc_cleanup()
 * Replaced usage of the following functions with osi_freebuf_and_reset()
   - mca_free_buf()
   - utl_freebuf()
   - btif_hl_free_buf()
 * Replaced usage of rc_supported_event_free() with osi_freebuf()
 * Replaced usage of btif_hl_get_buf() with osi_getbuf()
 * Eliminate some of the osi_get_buf_size() calls

Bug: 22948224
Change-Id: Ife860658b26274da6f228d7353cb0f1531587337
94 files changed