BUG: Allow duplicate indices when performing operations that align (GH5185)

closes #5185

```
In [1]: df1 = DataFrame([1, 2, 3, 4, 5], index=[1, 2, 1, 2, 3])

In [2]: df2 = DataFrame([1, 2, 3], index=[1, 2, 3])

In [3]: df1-df2
Out[3]: 
   0
1  0
1  2
2  0
2  2
3  2

In [4]: df1.sub(df2)
Out[4]: 
   0
1  0
1  2
2  0
2  2
3  2
```