[MRG+1] FeatureUnion example using a heterogeneous datasource.

Uses the 20newsgroups dataset. Extracts & processes the subject-line and body
with separate pipelines and combines them with a FeatureUnion.

Closes #3569
I think I'd rather see the dict inline here:

```python
return [{'length': len(text), 'num_sentences': text.count('.')}
        for text in posts]
```