GroupBy.var() is computing sum of squares instead of variance / Returns NaN when there is only 1 instance
#### Code Sample, a copy-pastable example if possible

```python
# returns 10.125
df = pd.DataFrame({'id': [1, 1], 'val': [0.5, 5.0]})
df.groupby('id').agg({'val': 'var'})


# first edit: 10.125.
df.groupby('id').agg({'val': np.var})

# second edit: 5.0625
df.groupby('id').agg({'val': lambda x: np.var(x)})

# 5.0625
np.var(df.val)

# Returns NaN
df = pd.DataFrame({'id': [1], 'val': [0.5]})
df.groupby('id').agg({'val': 'var'})
```

#### Output of ``pd.show_versions()``
'0.22.0'

