Adds Bidirectionality to Repeat

As far as I can tell, there is no reason for Repeat not to be implemented as a Bidirectional range.
Attached an arbitrary test to ensure this functionality is correct.