Fix pretty serious take* error

In a pretty rare combination of empty chunks and exact length matching,
we hit a branch where we erroneously preserved the remaining tree,
allowing such gems as:

*Yi.Rope> Yi.Rope.takeWhile isSpace r
YiString {fromRope = fromList [Chunk {chunkSize = 1, _fromChunk = "c"}]}

As usual, stronger typing could have stopped this so perhaps we should
look into that.
replicate, replicateChar