[MRG+1] TheilSen robust linear regression

A multiple linear Theil-Sen regression for the Scikit-Learn toolbox. The implementation is based on the algorithm from the paper "Theil-Sen Estimators in a Multiple Linear Regression Model" of Xin Dang, Hanxiang Peng, Xueqin Wang and Heping Zhang. It is parallelized with the help of joblib.
On a personal note, I think that the popular Theil-Sen regression would be a nice addition to Scikit-Learn.
I am looking forward to your feedback. 

Florian
@arjoly These lists can become huge since they behave like 'n choose k', where n is the number of samples and k is the number of subsamples but they are limited by the `max_subpopulation` parameter. I wanted to keep the `_lstsq` function general in the sense that it works on a set of indices and depending on the task I provide a different set of indices. This is why I create the different index sets outside of `_lstsq`. 
So the first strategy is needed if the index set is less than `max_subpopulation` so I can just calculate them with the help of `combinations`, meaning that I consider all combinations, i.e. no sampling. In the second case the number of combinations might be extremely large and I want to sample from them without actually generating the whole set so I chose this method. You are right that in this case I choose with replacement which is not optimal but works since `_lstsq` is robust to a degenerated X. So your question is neither obvious nor dump btw. Do you know an efficient way to generate a `indices` list like that? 
Following conditions: 
- for each vector `v` in `indices`: if `v[i] == v[j]` then i == j, i.e. only vectors so that each component of each vector is unique.
- for two vectors `v_i` and `v_j` in `indices`: if `v_i` == `v_j` then `i == j`, i.e. no two equal vectors