GPU Memory: implement libgpumem to interact with bpf

This change implements a libgpumem userspace library which does below:
1. Wait for BpfLoader to get initialized
1. Retrieve the fds from both the bpf program and map
2. Attach the program to the kernel tracepoint and enable the tracepoint
3. Create a BpfMapRO read-only map around the map fd
4. Implement a simple dumpsys interface to grap gpu memory snapshots

Unittests are done and will be added after integration.

Bug: 154524735
Test: atest gpuservice_unittest:GpuMemTest
Change-Id: Idd6d7f83a96551807bf3c1eb56fb53c922d2fee4
Merged-In: Idd6d7f83a96551807bf3c1eb56fb53c922d2fee4
3 files changed