Here are some quick items while skimming this patch. I am looking at commit 6448de29d from your github repo, branch bmi.
What's with the pg_bitmapindex stuff in pg_namespace.h? It doesn't seem to be used anywhere.
This led me to research how these indexes are stored. I note that what we're doing here is to create another regular table and a btree index on top of it, and those are the ones that actually store the index data. This seems grotty and completely unlike the way we do things elsewhere (compare GIN indexes which have rbtrees inside them).
+1 on that. I don't know about grottiness, but it certainly seems like it would deadlock like crazy. Which another product's bitmap indexes are infamous for, but since we don't need to store visibility information in our indexes, hopefully we can do better.