Remove algorithm A-ExpJ from RNG module, plus its helper functions
Initial Algorithm Motivation
Algorithm A-ExpJ was intended as a means of randomly sampling a reservoir of m values from a population of [1, n] integers, with associated weights. See Weighted random sampling with a reservoir and the wikipedia page.
However, the key function $ u_i^{1/w_i}$ blows up for small weights, \{w_i\}, which was problematic when using the density as the weight function. Rather than modify the key, I opted to use the simpler Fisher-Yates algorithm.
Reason for Removal
Rather than modify the key function for A-ExpJ and use this routine to replace Fisher-Yates, Fisher-Yates will instead be superseded by a weighted k-means++ algorithm, which ensures a better spread of random sampling points. As such, A-ExpJ is not required, so I've removed it and the corresponding helper functions.
Additionally, I've documented the bias in random_integer_in_range but (hopefully) not changed its behaviour as I don't want to affect any associated ISDF reference numbers. For grids of 10^6 points the bias is extremely small.
If kmeans++ proves to be more efficient at initial seeding of centroids, Fisher-Yates will be depreciated
This MR closes issue #1074 (closed)