Enable splits during streaming the dataset
For the range splits by percentage over streaming datasets, I used a simple approach [here](https://github.com/huggingface/transformers/pull/39286/files#diff-fb91934a0658db99f30d8c52d92f41d6ab83210134e7f21af8baac6ee65f548fR228) which can be reused to provide things like `[:25%]`, built-in and internally within `datasets`. 

However, it only works for integer percentages like `10%`, `15%`, etc but not for floating point ranges like `10.5%` or `15.1%`. I want to believe that's fine, because streaming datasets are normally large, thus very rarely one might need to split with floating point precision. There seem to be solutions for this, but they may add a lot of unnecessary complications.

Another caveat is that it does not split sequentially, I mean a split of `[:10%]` for example, does not mean that we will get the "first" 10% of the dataset rows! Instead, it gives us every first 10 rows of each bunch of 100 rows as we iterate over the dataset. A short look into the function linked above gives you the idea. 

Additionally, there might be other properties and behaviours in range splits over non-streaming datasets that won't work in the above proposed approach. Nevertheless, we can document these limitations and still provide it, as having some sort of range split is better than not having it at all! 🤗
## Describe the Problem

I'd like to stream only a specific percentage or part of the dataset. 
I want to do splitting when I'm streaming dataset as well.

## Solution
Enabling splits when `streaming = True` as well.
`e.g. dataset = load_dataset('dataset', split='train[:100]', streaming = True)`

## Alternatives
Below is the alternative of doing it.
`dataset = load_dataset("dataset", split='train', streaming = True).take(100)`

