PERF: fix #32976 slow group by for categorical columns
Aggregate categorical codes with fast cython aggregation for select `how` operations. Added new ASV benchmark copied from 32976 indicating > 99% improvement in performance for this case.

- [x] closes #32976
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

> how close do you think we are to defining an API to allow passing EA values to cython arrays?
> `values = self._values_for_cython(method="first")`

If we restrict attention to ordering-based cython methods then i think this is pretty straightforward, just need to get everyone on board. pls show the performance before / after. latest asv results for new benchmark replicating #32976:

```
$ asv continuous HEAD -b 'groupby.CategoricalFrame'

before           after         ratio    
     [77a0f19c]       [ec70c57e]
     <master>         <cat_groupby_fix>
-      1.68±0.01s       4.51±0.1ms     0.00  groupby.CategoricalFrame.time_groupby
-      1.68±0.01s      4.43±0.09ms     0.00  groupby.CategoricalFrame.time_groupby_ordered
                                                                 
SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.          
PERFORMANCE INCREASED.
``` Hello @rtlee9! Thanks for updating this PR. We checked the lines you've touched for [PEP 8](https://www.python.org/dev/peps/pep-0008) issues, and found:







There are currently no PEP 8 issues detected in this Pull Request. Cheers! :beers: 

##### Comment last updated at 2020-08-04 01:53:13 UTC @rtlee9 Can you merge master and fix the conflict? Fixed conflict and merged in 7570425 @rtlee9 if you'd address the comments and merge master @rtlee9 can you move release note to 1.2 and merge upstream/master to resolve conflict @rtlee9 Is this still active? Some merge conflicts that need resolving. Closing for now. @rtlee9 ping us whenever you'd like to continue and we'll reopen!