Fixed find_index_reverse.

Decided to go with the same algorithm for the distances (0, 1, 3, 7, etc)
and just count backwards (list - distance) instead of generating (0, -1, -3, -7, ..)
So the only things that change are the 'direction' in the while loop, and the 1 or 0
return value from the 'single item left' branch. This makes it easier to understand IMHO.

Also added an assertion that index == count - index_from_end to the test.