distrib API: replace distribute[v]() with an extended hwloc_distrib() with flags

The only flag for now is to reverse the distribute order.
Another may be added one day to ignore PU weight (original distribute behavior)
in case somebody wants to distribute by NUMA node instead of by same-weight sets
of PUs.

Requested by Jirka Hladky.
hwloc-distrib: add --reverse

We manually implement a hwloc_bitmap_singlify_last() with only(set, last(set)).

Requested by Jirka Hladky.