Parameterize hidden layers for feature-extraction pipeline
### Feature request

In the literature, token embeddings for downstream tasks are generated from various combinations of hidden layers, e.g. by summing or concatenating the last four layers. [This image](http://jalammar.github.io/images/bert-feature-extraction-contextualized-embeddings.png) from [this blog entry](http://jalammar.github.io/illustrated-bert/) gives a few examples. Currently, the `feature-extraction` outline only extracts the last hidden state.

I propose an additional parameter that specifies the layers to be used would be nice, e.g. for summing up the last four layers:

    pipeline('feature-extraction', n_layers=4)

I suppose there are a few options to discuss, e.g. is a single `n` to imply a range like `[-n:]` sufficient, or should it also be possible to specify e.g. `[-4:-2]` and/or `[2:]`?

Furthermore, alternative aggregation methods could be defined, e.g.:

     pipeline('feature-extraction', n_layers=4, aggr=('sum'|'concat'|...))



### Motivation

I understand from issue https://github.com/huggingface/transformers/issues/4613 that the output of the `feature-extraction` pipeline comes from the last hidden layer. I think this is a reasonable default, but it would be good to have an easy way to compare results when using other layers too. 

### Your contribution

I have never worked with `transformers` source code, but I suppose I could find my way if I get a pointer to the relevant place(s).
In general pipelines are kept simple for demo purposes. You can easily instantiate the processing class and model yourself for more complex behavior.<|||||>
> In general pipelines are kept simple for demo purposes. You can easily instantiate the processing class and model yourself for more complex behavior.

Ok, I suppose my point of view would be that you might want to be able to demonstrate the same feature with summing several layers. But I understand it is a design decision that is a bit subjective.