bpf: Introduce kernel prober interface
bpf: Introduce kernel prober interface

This commit allows us to mock out kernel probing so that unit tests
aren't constrained to the underlying kernel of the running system.

Note, special care was taken for bpf.GetMapType() to keep the function
API untouched. The main motivation is to avoid having to modify each
call site. The logic relies on the fact that if no supported map types
have been loaded into memory, we will default to probing the underlying
kernel. The unit tests will leverage this in order to inject their own
supported may types by calling bpf.SetMapTypesFromProber(), and thus
bypassing this check.

Signed-off-by: Chris Tarazi <711c73f64afdce07b7e38039a96d2224209e9a6c@isovalent.com>

tklauser/cilium,cilium/cilium,cilium/cilium,michi-covalent/cilium,michi-covalent/cilium,michi-covalent/cilium,tgraf/cilium,tgraf/cilium,tklauser/cilium,tgraf/cilium,tklauser/cilium,tklauser/cilium,tklauser/cilium,tgraf/cilium,tgraf/cilium,michi-covalent/cilium,tgraf/cilium,michi-covalent/cilium,cilium/cilium,cilium/cilium,cilium/cilium