[cxxmodules] Implement Bloom Filter
[cxxmodules] Implement Bloom Filter

Bloom filter in header section of so files is well described by:
https://blogs.oracle.com/solaris/gnu-hash-elf-sections-v2
and
lld/ELF/SyntheticSections.cpp

The point is that the static linker puts bloom filter value to .gnu.hash section
in so files. We just have to read this value and compare to the
mangled_name hash that we're looking for. Bloom filter is a false posive
probability data structure, so it might say "yes" to library which
"doesn't" contain mangled_name, but it won't say "no" to library which
"do" contain mangled_name.

Modules W/O this patch
```
Processing tutorials/hsimple.C...
hsimple   : Real Time =   0.04 seconds Cpu Time =   0.03 seconds
(TFile *) 0x562b37a14fe0
Processing /home/yuka/CERN/ROOT/memory.C...
cpu  time = 0.362307 seconds
sys  time = 0.039741 seconds
res  memory = 278.215 Mbytes
vir  memory = 448.973 Mbytes
```

Modules With this patch
```
Processing tutorials/hsimple.C...
hsimple   : Real Time =   0.05 seconds Cpu Time =   0.05 seconds
(TFile *) 0x564410677780
Processing /home/yuka/CERN/ROOT/memory.C...
 cpu  time = 0.356471 seconds
 sys  time = 0.079519 seconds
 res  memory = 266.73 Mbytes
 vir  memory = 423.59 Mbytes
```

This difference become bigger when we need to lookup more libraries in
experiments.

olifre/root,karies/root,karies/root,root-mirror/root,karies/root,olifre/root,olifre/root,olifre/root,root-mirror/root,karies/root,root-mirror/root,karies/root,olifre/root,root-mirror/root,root-mirror/root,olifre/root,olifre/root,root-mirror/root,karies/root,root-mirror/root,olifre/root,olifre/root,olifre/root,root-mirror/root,karies/root,karies/root,root-mirror/root,olifre/root,karies/root,root-mirror/root,root-mirror/root,karies/root,karies/root