More flexible multiple function application with DataFrameGroupBy
cc @arthurgerigk

Something of this nature would be nice:

```
df.groupby(['A', 'B']).agg({'C' : [np.mean, np.std]})
```

Would also be nice to add some options to agg for what to do with the input dict (by default targets columns)
