[NPU] Use weak pointer to safely destroy shared ptr when ref count is 0 (#32929)
### Details:
- *Use a weak pointer to safely destroy the shared ptr when the ref
count from the application is 0, and not increase it in the static
method*
### Tickets:
- *CVS-176148*
Signed-off-by: Bogdan Pereanu <bogdan.pereanu@intel.com>