duplicate calculations and unnecessary (nobs,nobs)    (my sandwich version avoids them)

```
xtx = np.dot(exog.T, exog)
xtxi = np.linalg.inv(xtx)
vcov = np.dot(np.dot(xtxi, np.dot(exog.t * d[:,None], exog), xtxi)
```
or something like this
are we allowed to have .dot method, numpy 1.5, then it could be made to look nicer

here, actually chain_dot would be ok, because all 3 are (k,k) arrays