BUG: preserve left frame order in left merge
closes https://github.com/pydata/pandas/issues/7331

on master:

```
>>> left
      dates states
0  20140101     CA
1  20140102     NY
2  20140103     CA
>>> right
   stateid states
0        1     CA
1        2     NY
>>> pd.merge(left, right, how='left', on='states', sort=False)
      dates states  stateid
0  20140101     CA        1
1  20140103     CA        1
2  20140102     NY        2
```

`DataFrame.join` already works fine:

```
>>> left.join(right.set_index('states'), on='states', how='left')
      dates states  stateid
0  20140101     CA        1
1  20140102     NY        2
2  20140103     CA        1
```

on branch:

```
>>> pd.merge(left, right, how='left', on='states', sort=False)
      dates states  stateid
0  20140101     CA        1
1  20140102     NY        2
2  20140103     CA        1

>>> pd.merge(left, right, how='left', on='states', sort=True)
      dates states  stateid
0  20140101     CA        1
1  20140103     CA        1
2  20140102     NY        2
```

ok then!

btw, if you are looking for something to do......

https://github.com/pydata/pandas/issues/4088 ( I did this a while back, https://github.com/pydata/pandas/pull/6647 but it doesn't quite fix this)
