BUG: complex is cast to float in sum with level arg
Preserve complex dtypes when a stat_function on DataFrame is called with the optional level argument.

Minimal example:

```
import pandas as pd
frame = pd.DataFrame({'z': [1+2j]})
frame.sum(level=0)
```

needs some tests
 @joe1gi can you update
 closing, if/when updated pls reopen
