Auto merge of #25230 - rayglover:patch-bitset, r=Gankro
Auto merge of #25230 - rayglover:patch-bitset, r=Gankro

Some modest running-time improvements to `std::collections::BitSet` on bit-sets of varying set-membership densities. This is work originally from [here](https://github.com/rayglover/alt_collections). (Benchmarks copied below)
```
std::collections::BitSet / alt_collections::BitSet

copy_dense         ... 3.08x
copy_sparse        ... 4.22x
count_dense        ... 11.01x
count_sparse       ... 8.11x
from_bytes         ... 1.47x
intersect_dense    ... 6.54x
intersect_sparse   ... 4.37x
union_dense        ... 5.53x
union_sparse       ... 5.60x
```

The exception is `from_bytes`, which I've left unaltered since the optimization is rather obscure.

Compiling with the cpu feature `popcnt` gave a further ~10% improvement on my machine, but this wasn't factored in to the benchmarks above.

Similar improvements could be made to `BitVec`, although that would probably require more substantial changes.

criticism welcome!

l0kod/rust,dwillmer/rust,seanrivera/rust,nwin/rust,andars/rust,vhbit/rust,philyoon/rust,kwantam/rust,dwillmer/rust,aidancully/rust,aepsil0n/rust,reem/rust,KokaKiwi/rust,andars/rust,pelmers/rust,andars/rust,cllns/rust,zachwick/rust,nwin/rust,TheNeikos/rust,pshc/rust,pshc/rust,jashank/rust,kwantam/rust,reem/rust,omasanori/rust,pshc/rust,dwillmer/rust,reem/rust,zachwick/rust,cllns/rust,graydon/rust,pshc/rust,robertg/rust,pshc/rust,zachwick/rust,l0kod/rust,jroesch/rust,graydon/rust,krzysz00/rust,TheNeikos/rust,carols10cents/rust,kwantam/rust,aidancully/rust,jashank/rust,kwantam/rust,cllns/rust,sae-bom/rust,sae-bom/rust,l0kod/rust,jroesch/rust,aepsil0n/rust,seanrivera/rust,gifnksm/rust,ejjeong/rust,omasanori/rust,jashank/rust,jashank/rust,cllns/rust,GBGamer/rust,nwin/rust,jashank/rust,dwillmer/rust,kwantam/rust,jashank/rust,pshc/rust,seanrivera/rust,XMPPwocky/rust,nwin/rust,GBGamer/rust,graydon/rust,ejjeong/rust,krzysz00/rust,omasanori/rust,zubron/rust,andars/rust,carols10cents/rust,ejjeong/rust,victorvde/rust,graydon/rust,philyoon/rust,seanrivera/rust,dwillmer/rust,zubron/rust,mihneadb/rust,philyoon/rust,nwin/rust,KokaKiwi/rust,pshc/rust,aidancully/rust,KokaKiwi/rust,mvdnes/rust,victorvde/rust,XMPPwocky/rust,jroesch/rust,jroesch/rust,aidancully/rust,rohitjoshi/rust,vhbit/rust,carols10cents/rust,philyoon/rust,krzysz00/rust,aneeshusa/rust,cllns/rust,XMPPwocky/rust,GBGamer/rust,GBGamer/rust,mvdnes/rust,mvdnes/rust,sae-bom/rust,mihneadb/rust,XMPPwocky/rust,nwin/rust,nwin/rust,dwillmer/rust,gifnksm/rust,vhbit/rust,pelmers/rust,jroesch/rust,zubron/rust,gifnksm/rust,robertg/rust,andars/rust,robertg/rust,cllns/rust,dwillmer/rust,victorvde/rust,robertg/rust,vhbit/rust,l0kod/rust,pelmers/rust,carols10cents/rust,vhbit/rust,TheNeikos/rust,KokaKiwi/rust,ejjeong/rust,robertg/rust,XMPPwocky/rust,sae-bom/rust,krzysz00/rust,mvdnes/rust,omasanori/rust,victorvde/rust,sae-bom/rust,aidancully/rust,KokaKiwi/rust,TheNeikos/rust,omasanori/rust,jroesch/rust,reem/rust,aepsil0n/rust,philyoon/rust,aneeshusa/rust,victorvde/rust,krzysz00/rust,XMPPwocky/rust,pelmers/rust,vhbit/rust,kwantam/rust,aepsil0n/rust,gifnksm/rust,mvdnes/rust,mihneadb/rust,aepsil0n/rust,TheNeikos/rust,rohitjoshi/rust,zachwick/rust,rohitjoshi/rust,GBGamer/rust,jashank/rust,carols10cents/rust,nwin/rust,zubron/rust,GBGamer/rust,aneeshusa/rust,mvdnes/rust,jroesch/rust,vhbit/rust,dwillmer/rust,l0kod/rust,mihneadb/rust,gifnksm/rust,zubron/rust,jashank/rust,graydon/rust,jroesch/rust,aneeshusa/rust,victorvde/rust,reem/rust,seanrivera/rust,pshc/rust,andars/rust,mihneadb/rust,zubron/rust,krzysz00/rust,philyoon/rust,ejjeong/rust,gifnksm/rust,KokaKiwi/rust,aidancully/rust,zubron/rust,TheNeikos/rust,rohitjoshi/rust,aneeshusa/rust,robertg/rust,l0kod/rust,pelmers/rust,l0kod/rust,l0kod/rust,zachwick/rust,seanrivera/rust,GBGamer/rust,pelmers/rust,zachwick/rust,reem/rust,ejjeong/rust,vhbit/rust,graydon/rust,mihneadb/rust,zubron/rust,GBGamer/rust,rohitjoshi/rust,carols10cents/rust,rohitjoshi/rust,aneeshusa/rust,sae-bom/rust,aepsil0n/rust,omasanori/rust