WIP: Panel models

let me know what should be added to this todo list:

- [ ] transform_slices as a group iterator
- [ ] move useful pandas index attributes to Group instance attributes
- [ ] naming convention / consistency
- [x] current Grouping() class focuses on the unbalanced case. do we want balanced optimization? 
- [ ] detect if endog and exog have a proper index already
- [ ] proper df in unbalanced case?
- [x] predict random effects?
- [x] optional sanity checks on user-supplied index (e.g sorted, duplicates)
- [x] Grouping.sortdata(array) method
- [ ] tests
- [x] recover removed individual fixed effects [won't do this for initial release]
- [x] two-way random effects [won't do this for initial release]
- [x] post-estimation tests [won't do this for initial release]