Adds Bidirectionality to Repeat

There is no reason (that I can see) that Repeat should not be implemented as a Bidirectional range, therefore this pull request adds that functionality.

See attached an arbitrary test that ensures this functionality is correct.