map: implement createMap() on MapSpec, split into finalize()
map: implement createMap() on MapSpec, split into finalize()

In order to be able to autopopulate PROG_ARRAY maps, map creation and
population need to be separated to avoid possible dependency cycles between
programs and the maps they can appear in.

First, all maps need to be created so their fd's can be obtained. Then, they
need to be linked into the programs, the programs need to be loaded into the
kernel, and only then can PROG_ARRAYs be populated with said program fds.

finalize() takes care of the populating and freezing part.

Signed-off-by: Timo Beckers <98c2d5a1e48c998bd9ba9dbc53d6857beae1c9bd@isovalent.com>

cilium/ebpf,cilium/ebpf