Transplanted partial commit from branch 'mapWithRunLengthsExperiment'. Introduces a bug due to one of the collections being generated in a random order of test variable indices (should have been sorted).
Transplanted partial commit from branch 'mapWithRunLengthsExperiment'. 
WIP step 10 - bugfix for change made at the base of this branch - I had assumed a collection was ordered when it wasn't. This seems to have solved one bug and unearthed another - so the tests now break in a different way. Investigating...
Fix bug exposed on this branch by previous commit - test variable indices excluded during the filling out of partial test vectors could include previously excluded indices already marked in the input partial test vector. This used to be a benign bug as the resulting duplicate entries were simply disregarded, however the cutover implementation on this branch regards such duplicates correctly as a precondition failure. This commit stops creation of such duplicates.
Use tail recursion when filling out partial test vectors.
Merge of bugfix for filling out of partial test vectors from 'InvestigateBugInFillingOutPartialTestVector'.