WIP: fit_constrained

add constrained fitting to models

starting with generic setup and Poisson as example.
OLS was test example for transformation, but has separate RestrictedGLS implementation, PR #1673

- [ ] needs offset for all models except linear, see #1640
  currently only count models and GLM have offset

- [ ] add method to models
  - [x] Poisson
  - [ ]  other discrete, NegativeBinomial has offset but an extra parameter that needs to be handled
  - [x] GLM
  - [ ] ? linear models, has other implementation, that avoids auxiliary model creation, delegate
  - [ ] RLM  I'm pretty sure it works almost out of the box, but haven't tried yet, 
        using correction to endog instead of offset is not implemented in the function 
        (I have a separate example code for that, linear case is more related to RestrictedGLS PR)

- [x] does not return results instance, currently returns params and bse, calculates cov_params
  Those two need to be overwritten in the creation of the results instance.
  I would prefer generic results creation see #1615, but will start with a full test case for Poisson.

- [x] unit test currently only verify params and bse,  tvalues, pvalues, confint, llf, and llnull (if available) are verified

- [x] start_params for transformed model: I got convergence failures sometimes in bfgs, sometimes in newton. I didn't get them in both at the same time for the poisson test cases. Needed to add start_params for TravisCI to converge in test cases 1a and 2a

- [x] still unclear (waiting for results instance to inherit all results to be verified): 
   - [x] df_resid, df_model, small sample correction, I assume those need to be adjusted unless we only use asymptotic normal version, no `use_t=True`
   - [X] aic, bic, ... ?   not yet in results module, works without changes but see #1733

- [ ] problem: functions or results methods that want to access score_obs, hessian, get the wrong method, doesn't take constraints into account, ???  
      maybe no problem: Likelihood function doesn't change, we just evaluate it at the constrained parameters.
      need to check what kshedden did for score test in GEE. 

- [x] summary, other
     - [x] summary shows converged=False from the wrong fit, need to adjust mle_fit results 
     - [x] summary doesn't mention constrained estimation

code duplication: 
`base.TransformRestriction` has the same purpose as Kerby's version in GEE. I haven't checked if the result is identical.

- API decisions, naming, ...


- bonus question: Can I get the robust covariances just from the transformed model without any extra work?   Need to be wired up.


Unit tests
I have added more test results from Stata that haven't been use so far, unconstraint, and constraint with `vce(robust)` option
I don't know what `vce(robust)` does in Stata, and I haven't figured out yet how to add sandwich robust covariances to GLM. Stata also allows HAC and cluster robust vce in GLM.


**follwow-up**

- extension to other classes
- clean up and find pattern and naming for Transformation classes (missing get_offset(exog) method)

- unused `transform_params_constraint` that obtains restricted parameters from the unrestricted parameters (approximate in non-linear models, similar to Wald test)

- development script `examples/try_fit_constrained.py` contains example with application to linear model (OLS) and example for `transform_params_constraint`