Add bloom filter

This PR adds the bloom filter data type and functions.
It also contains adjustments to the AVL data structure.
Maybe you should add a cast here: `((size_t) 1) << width`.