Change blist_next_leaf_alloc so that it can examine more than one leaf after the one where the possible block allocation begins, and allocate a larger number of blocks than the current limit. This does not affect the limit on minimum allocation size, which still cannot exceed BLIST_MAX_ALLOC.
Use this change to modify swp_pager_getswapspace and its callers, so that it can allocate more than BLIST_MAX_ALLOC blocks if they are available, to avoid a later call that would allocate those blocks anyway.
The change to blist_next_leaf_alloc could also be used to support TRIM, to grab a large number of blocks at a time to get trimmed. That would require other changes, including a new "trimming cursor" that stays ahead of the regular cursor, but none of that is implemented yet.