Provide slicing for Repeat

Provides slicing for Repeat. Pretty straight forward.

Fixes a few bugs and does a tweak in Sequence. Each change explained in each individual commit.

The big question: Repeat was an infinite range that provided bidirectional primitives. Does that make any sense at all?

I removed them. Should I have deprecate instead? Is that even worth the trouble? I don't like deprecating in this specific case, because of the ambiguity it cause in `isBidirectional!Range`...