Heckman

Added a module to estimate the Heckman selection model using the Heckman 2-step. A test module checks the parameter estimates that this module creates in an example dataset against the parameter estimates that Stata creates. If this happens to merge well into the existing statsmodels code, I'd like to add an MLE estimation method as well. Stata currently has the option to estimate the Heckman model by either the 2-step or by MLE.
It seems like that `__init__` only supports 2D arrays as extra arrays that are symmetric. 

https://github.com/statsmodels/statsmodels/blob/master/statsmodels/base/data.py#L178

When I pass the selection data matrix through (2D) as an extra array, I get an index error

```
(Pdb) super(Heckman, self).__init__(endog, exog=exog, exog_select=exog, missing='drop')
*** IndexError: indices are out-of-bounds
```

But when I pass in a 1D array as an extra array, it's fine:
```
(Pdb) super(Heckman, self).__init__(endog, exog=exog, exog_select=endog, missing='drop')
```

The extra array parameter to `__init__` seems like it would be really useful, though. I'm thinking of creating a new 1D array that will take the value `np.nan` for any row of `exog_select` that has any missing data, and feeding that dummy 1D array into `__init__`, and then using the index of the returned subset to properly subset `exog_select`. That sounds a little convoluted, but is there a better way to implement it?